博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 数据绑定基础
阅读量:5283 次
发布时间:2019-06-14

本文共 1510 字,大约阅读时间需要 5 分钟。

纯理论,可能会枯燥。

.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可以绑定很多属性。

转载于:https://www.cnblogs.com/gaobing/p/3853334.html

你可能感兴趣的文章
MVC学习系列——Model验证扩展
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
Linux编程简介——gcc
查看>>
2019年春季学期第四周作业
查看>>
rotate the clock
查看>>
Python并发编程04/多线程
查看>>
CF461B Appleman and Tree
查看>>
CF1215E Marbles
查看>>
BZOJ2339 HNOI2011卡农(动态规划+组合数学)
查看>>
octave基本操作
查看>>
axure学习点
查看>>
WPF文本框只允许输入数字[转]
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>
使用XML传递数据
查看>>
TYVJ.1864.[Poetize I]守卫者的挑战(概率DP)
查看>>
0925 韩顺平java视频
查看>>
iOS-程序启动原理和UIApplication
查看>>