WPF数据绑定(1) 绑定到控件
2008-07-10 10:11
351 查看
<StackPanel HorizontalAlignment="Left" Height="274" Width="286"> <TextBox Width="100" Name="TextBox1" Text="1111" Height="30"/> <TextBox Width="100" Height="30" Margin="10" Text="{Binding ElementName=TextBox1,Path=Text,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> </StackPanel>
OneWay 绑定导致对源属性的更改会自动更新目标属性,但是对目标属性的更改不会传播回源属性。此绑定类型适用于绑定的控件为隐式只读控件的情况。例如,您可能绑定到如股票行情自动收录器这样的源,或许目标属性没有用于进行更改的控件接口(如表的数据绑定背景色)。如果无需监视目标属性的更改,则使用 OneWay 绑定模式可避免 TwoWay 绑定模式的系统开销。
TwoWay 绑定导致对源属性的更改会自动更新目标属性,而对目标属性的更改也会自动更新源属性。此绑定类型适用于可编辑窗体或其他完全交互式 UI 方案。大多数属性都默认为 OneWay 绑定,但是一些依赖项属性(通常为用户可编辑的控件的属性,如 TextBox 的 Text 属性和 CheckBox 的 IsChecked 属性)默认为 TwoWay 绑定。确定依赖项属性在默认情况下是单向绑定还是双向绑定的一种编程方式是使用 GetMetadata 获取属性的属性元数据,然后检查 BindsTwoWayByDefault 属性的布尔值。
OneWayToSource 与 OneWay 绑定相反;它在目标属性更改时更新源属性。一个示例方案是您只需要从 UI 重新计算源值的情况。
OneTime 绑定,该绑定会导致源属性初始化目标属性,但不传播后续更改。这意味着,如果数据上下文发生了更改,或者数据上下文中的对象发生了更改,则更改会反映在目标属性中。如果您使用的数据的当前状态的快照适于使用,或者这些数据是真正静态的,则适合使用此绑定类型。如果要使用源属性中的某个值初始化目标属性,并且事先不知道数据上下文,则也可以使用此绑定类型。此绑定类型实质上是 OneWay 绑定的简化形式,在源值不更改的情况下可以提供更好的性能。
如果 UpdateSourceTrigger 值为 PropertyChanged,则 TwoWay 或 OneWayToSource 绑定的右箭头指向的值会在目标属性更改时立刻进行更新。但是,如果 UpdateSourceTrigger 值为 LostFocus,则仅当目标属性失去焦点时,该值才会使用新值进行更新。
相关文章推荐
- wpf ComboBox 控件利用DataSet数据绑定
- WPF之数据绑定控件比较
- WPF Grid 数据绑定,当数据源发生变化后控件值随之更新
- wpf 绑定数据无法更新ui控件可能存在的问题
- WPF学习(1):控件之间的数据绑定
- WPF 控件如何绑定资源中的数据
- WPF 数据控件绑定数据与 ASP.NET数据控件绑定数据的区别
- WPF: WrapPanel 容器的数据绑定(动态生成控件、遍历)
- WPF 点击 datatemplate 里面的控件,获取相应绑定的数据
- treeview控件(动态数据绑定+整行选择)(WPF)(一)
- WPF常用数据绑定控件集合
- WPF 控件中的数据绑定
- wpf 控件的依赖属性和数据绑定
- Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定之二:使用外部URL的XML文件)
- CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)
- WPF 依赖属性,用户控件依赖属性(DependencyProperty 依赖属性、GetValue() SetValue() CLR属性包装器、SetBinding 数据绑定)
- CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)
- .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)
- 【转】WPF中PasswordBox控件的Password属性的数据绑定
- CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)