WPF 数据绑定基础
纯理论,可能会枯燥。
.net 技术群: 199281001 ,欢迎加入。
1.目标对象一定是派生自DependencyObject的对象,并且目标属性必须是依赖属性,否则数据绑定操作将会失 败。绑定源对象可以不是依赖对象和依赖属性。
2.定义了依赖属性时,FrameworkPropertyMetadataOptions.NotDataBindable 标志会影响依赖属性的绑定。当改变源对象依赖属性值后,绑定目标可以立即得以更新,开发人员不需要响应事件来手动编写响应代码。
3.移除绑定:开发人员可以通过BindingOperations类的两个静态方法移除绑定。
<1> ClearAllBindings():从指定的DependencyObject 中移除所有的绑定。
<2>ClearBinding(): 获取一个依赖属性作为参数。如果该属性存在绑定,则移除绑定。
这两个方法的适用示例如下。
BindingOperations.ClearAllBindings(nameTextBox,TextBox.TextProperty);
BindingOperations.ClearBinding(nameTextBox);
ClearAllBindings()和ClearBinding() 都是派生自DependentyObject类的ClearValue()方法来移除属性的本地值。
4.绑定方向
<1>OneWay :当源属性发生更改时更新目标属性。
<2>TwoWay :当源属性发生更改时更新新目标属性,当目标属性发生更改时,同时也更改源属性。
<3>OneTime :仅当应用程序启动时或DataContext进行更改时更新目标属性。
<4>OneWayToSource :在目标属性更改时更新源属性。
<5>Default :使用目标属性的默认Mode 值。
5.绑定更新
<1>Default :绑定目标属性的默认UpdateSourceTrigger值。 多数依赖项属性的默认值为PropertyChanged,而Text属性的默认值为 LostFocus()。
<2>PropertyChanged :当绑定的目标属性更改时,立即更新绑定源。
<3>LostFocus() :当绑定目标元素失去焦点时,更新绑定源。
<4>Explicit :仅在调用UpdateSource()方法时更新绑定源。
6.绑定到非元素的对象
<1>Source :指向源对象的引用,也即提供数据对象的引用。
<2>RelativeSource :指向当前元素自身的对象。允许为目标对象指定一个相对于源对象的目标对象。这不太好理解。
RelativeSource Mode属性
<2.1>PreviousData :允许绑定所显示的数据项列表中以前的数据项(不是包含数据项的控件)。
<2.2>TemplatedParent :引用应用模板(其中有绑定数据的元素)的元素。
<2.3>Self :引用用户对其设置绑定的元素。
<2.4>FindAncestor :引用数据绑定元素父链中的上级。
<3>DataContext :如果没有指定Source或者RelativeSource属性,WPF将从当前元素开始向上搜索元素树。检查每个元素的DataContext属性,并且会使用最先找到的DataContext,也即DataContext属性不为null的数据上下文,DataContext可以绑定很多属性。
WPF 数据绑定基础的更多相关文章
- C#-WPF数据绑定基础(一)
前言:WPF数据绑定技术有效的提高了程序的容错率,可以最大程度的保持程序的健壮性,从而降低程序在使用过程中崩掉的可能性. 接下来,我将分享一下我在写测量程序过程中所用到的数据绑定方面的知识 首先,我所 ...
- WPF 数据绑定 1_1 基础知识&绑定到元素属性
A.数据绑定基础: 数据源对象:WPF将从该对象中提取信息,交由目标对象进行显示. 目标对象:从数据源中提取信息,并赋给该对象的属性. B.绑定到元素属性 最简单的绑定情形则是将一个源对象指定为一个W ...
- Windows 8实例教程系列 - 数据绑定基础实例
原文:Windows 8实例教程系列 - 数据绑定基础实例 数据绑定是WPF,Silverlight以及Windows Phone应用开发中最为常用的开发技术,在基于XAML的Windows Stor ...
- 微软原文翻译:适用于.Net Core的WPF数据绑定概述
原文链接,大部分是机器翻译,仅做了小部分修改.英.中文对照,看不懂的看英文. Data binding overview in WPF 2019/09/19 Data binding in Windo ...
- WPF 数据绑定Binding
什么是数据绑定? Windows Presentation Foundation (WPF) 数据绑定为应用程序提供了一种简单而一致的方法来显示数据以及与数据交互. 通过数据绑定,您可以对两个不同对象 ...
- WPF数据绑定Binding(二)
WPF数据绑定Binding(二) 1.UI控件直接的数据绑定 UI对象间的绑定,也是最基本的形式,通常是将源对象Source的某个属性值绑定 (拷贝) 到目标对象Destination的某个属性上. ...
- WPF——数据绑定(一)什么是数据绑定
注意:本人初学WPF,文中可能有表达或者技术性问题,欢迎指正!谢谢! 一:什么是数据绑定? “Windows Presentation Foundation (WPF) 数据绑定为应用程序提供了一种简 ...
- 剖析WPF数据绑定机制
引言 WPF框架采取的是MVVM模式,也就是数据驱动UI,UI控件(Controls)被严格地限制在表示层内,不会参与业务逻辑的处理,只是通过数据绑定(Data Binding)简单忠实地表达与之绑定 ...
- WPF 10天修炼 第十天- WPF数据绑定
WPF数据绑定 数据绑定到元素属性是将源对象指定为一个WPF元素,并且源属性是一个依赖属性,依赖属性内置了变更通知.当改变源对象依赖属性值之后,绑定目标可以立即得到更新,开发人员不需要手动编写响应事件 ...
随机推荐
- 如何在高并发分布式系统中生成全局唯一Id(转)
http://www.cnblogs.com/heyuquan/p/global-guid-identity-maxId.html 又一个多月没冒泡了,其实最近学了些东西,但是没有安排时间整理成博文, ...
- 构建高转化率的着陆页-PS+HTML+网络营销
课程简介 本课程是全网独家专业的着陆页课程,课程完整的再现了整个着陆页实战案例的开发过程,包括:策划.设计和实现.上线后的推广.优化及提高转化率的技巧等,本套课程能帮助您迅速掌握着陆页的能力,迅速洞察 ...
- 用python简单处理图片(5):图像直方图
我们先来看两个函数reshape和flatten: 假设我们先生成一个一维数组: vec=np.arange(15) print vec 显示为: [ 0 1 2 3 4 5 6 7 8 9 10 1 ...
- 网络最大流问题之Ford-Fulkerson算法原理详解
前言 最大流问题是网络优化中典型的问题,用形象的语言来描述就是在满足容量约束的前提下将尽可能多的流从源节点(始点)到汇节点(终点).解决此问题的经典方法很多,本文介绍广为人熟知的Ford-Fulker ...
- Linux常用指令---工作
查看所有用户cat /etc/passwd 复制整个目录cp -ri A/B/* A1/B1/ 若复制过程中询问是否覆盖,输入y按回车 另外若A A1不在同一目录下,最好填绝对路径,就是/xxx/xx ...
- node-webkit 写桌面系统
[1.使用nodejs] 和很多人一样,百度了很久很久,没看到有恰到点的解释的,当时我已经怀疑到是配置出来的,而非引js,最后确实啥都不用引 实际关键在package.json加入设置"no ...
- double相加(減)结果会有些误差
前提介绍 今天在调试代码的时候发现了一个double类型数据相减的有趣问题,148163.1 - 82692.09大家猜猜结果等于多少,经过调试最终为5471.010000000009. 是不是很奇怪 ...
- Git.Framework 框架随手记--ORM查询返回实体对象
使用ORM有一个优势,可以通过某种机制将数据库中的数据转化为自己想要的对象形式数据.本章记录一下如何使用Git.Framework返回实体对象 一. Git.Framework 中提供的方法 在Git ...
- Linux下硬盘安装Windows系统。
注意:本方法安装后会把Linux系统损坏,方法适用于完全不再需要Linux系统. 本方法在ubuntu 14.04,centos 6.5,debian 8测试成功. 安装方法是通过grub2引导Win ...
- js与jquery的区别
var html = $('<a target="_blank" href="' + adCompContent.clickURL + '">< ...