做外贸哪个网站最好,什么软件可以自主建设网站,东莞望牛墩网站建设,河南网站设计公司价格续接上文#xff0c;本章继续讲解WPF Binding相关知识#xff0c;主要内容是绑定的模式和绑定源#xff08;Source#xff09;
5绑定模式
在使用Binding类的时候有4中绑定模式可以选择
BindingMode
TwoWay导致对源属性或目标属性的更改可自动更新对方。此绑定类型适用于…续接上文本章继续讲解WPF Binding相关知识主要内容是绑定的模式和绑定源Source
5绑定模式
在使用Binding类的时候有4中绑定模式可以选择
BindingMode
TwoWay导致对源属性或目标属性的更改可自动更新对方。此绑定类型适用于可编辑窗体或其他完全交互式 UI 方案。OneWay当绑定源源更改时更新绑定目标目标属性。如果要绑定的控件为隐式只读控件则适用此绑定类型。例如可以绑定到如股市代号之类的源。或者可能目标属性没有用于进行更改例如表的数据绑定背景色的控件接口。如果不需要监视目标属性的更改则使用 OneWay 绑定模式可避免 TwoWay 绑定模式的系统开销。OneTime当应用程序启动或数据上下文更改时更新绑定目标。此绑定类型适用于以下情况使用当前状态的快照适合使用的或数据状态实际为静态的数据。如果要从源属性初始化具有某个值的目标属性并且事先不知道数据上下文则也可以使用此绑定类型。实质上这是 OneWay 绑定的较简单的形式它在不更改源值的情况下可提供更好的性能。OneWayToSource当目标属性更改时更新源属性。Default使用绑定目标的默认 Mode 值。每个依赖项属性的默认值都不同。一般情况下用户可编辑控件属性例如文本框和复选框的属性默认为双向绑定而多数其他属性默认为单向绑定。确定依赖项属性绑定在默认情况下是单向还是双向的编程方法是使用 GetMetadata 来获取属性的属性元数据然后检查 BindsTwoWayByDefault 属性的布尔值。
6 绑定源Source
StaticResource1在资源第一次引用之后无需再修改资源的值。 2资源引用不会基于运行时的行为进行重新计算比如在重新加载Page/Window的时候。 3当需要设置的属性不是DependencyObject或Freezable类型的时候用StaticResource。 4当需要将资源编译到dll中并打包为程序的一部份或者希望在各应用程序之间共享时也使用StaticResource。 5当需要为一个自定义控件创建一个Theme并Theme中使用资源就需要使用StaticResource。因为StaticResource的资源查找行为时可预测的并且本身包含在Theme中。而对于DynamicResource即使资源是定义在Theme中也只能等到运行时确定导致一些可能意料不到的情况发生。 6当需要使用资源设置大量的依赖属性Dependency Property的时候。 由于依赖属性具有属性系统提供的值缓存机制所以如果能在程序装载时设置依赖属性的值这样依赖属性就不需要检查自己的值并返回最后的有效值了。DynamicResource 1资源的值依赖一些条件而该条件直到运行时才能确定。 包括系统资源或是用户可设置的资源。比如可以创建引用系统属性诸如SystemColors,SystemFonts来设置值而这些属性是动态的它们的值又来自于运行环境和操作系统。 2为自定义控件引用或创建Theme Style。 3希望在程序运行期间调整资源字典的内容时。 4希望资源可以向前引用时如上面在Canvas中引用innerLgbResource一样 5资源文件很大希望在运行时才加载。 6要创建的Style的值可能来自于其它值而这些值又依赖于Theme或用户的设置。 7当引用资源的元素的父元素有可能在运行期改变这个时候也需要使用动态资源。因为父元素的改变将导致资源查询的范围。 Dynamic resource的限制条件属性必须是依赖属性或是Freezable的。 TemplateBinding 当应用程序启动或数据上下文更改时更新绑定目标。此绑定类型适用于以下情况使用当前状态的快照适合使用的或数据状态实际为静态的数据。如果要从源属性初始化具有某个值的目标属性并且事先不知道数据上下文则也可以使用此绑定类型。实质上这是 OneWay 绑定的较简单的形式它在不更改源值的情况下可提供更好的性能。ElementName根据控件名称直接指定数据源。RelativeSource 当一个Binding有明确的数据来源时可以通过为Source或ElementName赋值的办法让Binding与之关联有的时候由于不能确定Source的对象叫什么名字但知道它与作为Binding目标的对象在UI布局上有相对关系比如控件自己关联自己的某个数据、关联自己某级容器的数据就要使用Binding的RelativeSource属性。RelativeSource属性的数据类型为RelativeSource类通过这个类的几个静态或非静态属性可以控制它搜索相对数据源的方式。 RelativeSourceMode 1、FindAncestor 2、PreviousData 3、Self 4、TemplatedParent **************************************************************************************************************