1. 数据绑定(Binding)一般配置
常用的绑定的目标(Dependency Object & associated Dependency Property,目标单元):
内容控件目标:object ContentControl.Content
集合控件目标:IEnumerable ItemsControl.ItemSource
绑定器:
Binding ( : BindingBase : MarkupExtension )
Binding binding = new Binding();
binding.ElementName = "WPF控件名称"; / binding.Source = …;
binding.Path = new System.Windows.PropertyPath("路径串");
绑定到源(Object & its Property):
代码动态绑定:BindingExtensionBase FrameworkElement.SetBinding(DependencyProperty dp, BindingBase binding) (dp = ContentControl.ContentProperty, ItemsControl.ItemsSourceProperty, …)
XAML举例:<Label Content=”{Binding … Path=…}”…> , <ListBox ItemsSource=”{Binding … Path=…}"> …
({Binding}中单独出现Path时,“Path=”可以省略)
取消绑定:BindingOperations.ClearBinding(this.Label1, ContentControl.ContentProperty);
使用DataContext:
设置某个单元的FrameworkElement.DataContext属性,为其子单元提供默认的绑定源(Source,ElementName,RelativeSource未设置的Binding),可通过代码和XAML设置。
设置绑定模式:
Default - 采用目标使用的默认方式
OneTime - 仅在程序启动或数据源引用或context变动时候更新,但源本身的值发生变化不触发更新
OneWay - 仅目标因源而改变(实验中发现,有的时候目标因用户修改,例如TextBox,可能不会再接受源的更改)
OneWayToSource - 仅源因目标而改变
TwoWay - 双向变化
源更新:
在上述使用向源反馈更新模式时,设置Binding.UpdateSourceTrigger决定更新的频率:
Explicit - 仅在BindingExpression.UpdateSource()时更新,BindingExpression通过这个形式获取:textBox.GettBindingExpression(TextBox.TextProperty);
LostFocus - 在包含目标的单元失去焦点时更新;
PropertyChanged - 每当目标发生变化时;
Default - 根据目标的特性的默认值。
2. 绑定到Object
用Binding.Source而不是Binding.ElementName,Binding.Path通常忽略。
常用的如画刷设置,以下示例静态对象引用格式:
<Button Background=”{Binding Source={x:Static SystemColors.WindowColor}}” …
另一种应用是绑定到逻辑资源:
在资源中定义某个类型的一个资源<名空间别名:类名 x:Key="对象名称">
绑定:Content=”{Binding Source={ StaticResource 对象名称}, Path=对象属性}"…
其中名空间别名定义: xmlns:别名="clr-namespace:工程代码中的名空间名称[;assembly=库名]"
3. 绑定到WPF控件
ElementName设为组件名字符串;Path设为表示值的组件的变量。
4. 绑定到相对位置
DotNet关键知识点——WPF篇(五)
最新推荐文章于 2024-08-16 19:40:38 发布
这篇博客详细探讨了WPF中的数据绑定机制,包括常见的绑定目标、数据上下文、绑定模式、对象绑定、控件绑定、相对位置绑定、列表绑定、ADO.NET绑定、ObjectDataProvider、XML绑定、数据模板、数据排序、数据编组、数据过滤、数据转换和数据验证等关键概念和用法。通过实例展示了如何实现各种复杂的数据交互和呈现。
摘要由CSDN通过智能技术生成