WPF数据绑定
2017-04-28 15:33
183 查看
1、元素绑定
数据绑定的最简单情形是,源对象是WPF元素而且源属性是依赖项属性。依赖项属性具有内置的更改通知支持(此处可以窥见INotifyInterface接口)。因此当源对象中更改依赖项属性的值时,会立即更新目标对象中的绑定属性。绑定表达式:
以滑动控件和文本控件绑定为例:绑定文本控件的值FontSize值和滑动控件的Value值
<Slider Name="sliderFontSize" Minimum="1" Maximum="40" Value="10"></Slider> <TextBlock Text="Simple Text" Name="lblSampleText" FontSize="{Binding ElementName=sliderFontSize,Path=Value,Mode=TwoWay}"></TextBlock>
数据绑定表达式使用XAML标记扩展(因此具有花括号)。
Binding:由于要创建System.Windows.Data.Binding类的一个实例,所以绑定表达式以Binding开头
ElementName:属性,指示源元素。
Path:属性,指示源元素中的属性。
Delay:属性,绑定延迟,特殊情况可以在绑定中添加该属性,在等待指定时间后再更新源对象。
Mode:绑定模式。
oneWay:使用OneWay
绑定时,每当源发生变化,数据就会从源流向目标。
OneTime: 绑定也会将数据从源发送到目标;但是,仅当启动了应用程序或 DataContext 发生更改时才会如此操作,因此,它不会侦听源中的更改通知。
OneWayToSource: 绑定会将数据从目标发送到源。
TwoWay: 绑定会将源数据发送到目标,但如果目标属性的值发生变化,则会将它们发回给源。
Default: binding的模式根据实际情况来定,如果是可编辑的就是TwoWay,只读的就是OneWay。(对于Default模式,依赖属性中有一个元数据-FrameworkProperty-Metadata.BindsTwoWayByDefault标志,指示是单向绑定还是双向绑定)
2、绑定到非元素对象
在数据驱动的应用程序中,更常见的情况是创建从不可见的对象中提取数据的绑定表达式。唯一的要求是显示的信息必须存储在公有属性中。WPF数据绑定基础结构不能获取私有信息和公有字段。当绑定到非元素对象时,需要放弃Binding.ElementName属性,并使用以下属性中的一个:
Source:该属性是指向源对象的引用,即提供数据的对象。
RelativeSource:这是引用属性,也是用于指向源对象的引用。RelativeSource属性是一种特殊工具,当编写控件模板以及数据模板时非常方便(通常是因为源对象和目标对象在不同的标记块当中,比如在写模板的时候通过RelativeSource查找其他元素)。
DataContext:如果没有用Source,RelativeSource指定源,WPF就从当前元素开始在元素树中向上查找。检查每个元素的DataContext属性,并使用第一个非空的DataContext属性。
3、数据绑定
具有null值的绑定在绑定数据的时候,有可能绑定的数据源属性值为空的情况,可通过简单值类型(数字和日期等)使用可空数据类型反应这一情况,例如decimal?替代decimal。当然,应用类型,如字符串和完整对象,总是支持null值。还可以通过绑定表达式中设置TargetNullValue属性来改变WPF对null值的处理方式。如果设置了该属性,当数据源具有null值时,将显示提供的值。
Text="{binding Path=description,TargetNullValue=[No Description Provided]}"
其中TargetNullValue值的方括号可选,使用方括号目的是帮助区分文本并不来自数据库或绑定数据源。
相关文章推荐
- WPF中ListView小Demo的数据绑定应用.
- WPF数据绑定
- WPF之绑定数据
- wpf 数据绑定有关讲解
- WPF笔记(6)数据绑定(DataBinding)
- 对话框中的数据绑定(WPF)
- 调试WPF数据绑定(Data Binding)错误
- wpf学习笔记-数据绑定功能总结
- 学习WPF: 创建数据绑定目录树
- WPF中数据绑定的Validation应用分析
- WPF中的数据绑定
- WPF笔记(4.3 集合数据绑定)——Data Binding
- WPF笔记(4.2 单笔数据绑定)——Data Binding
- wpf学习笔记-数据绑定功能总结
- WPF精粹之数据绑定
- WPF中ListView小Demo的数据绑定应用.
- Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定之二:使用外部URL的XML文件)
- WPF之数据绑定
- WPF数据绑定(2) 绑定到XML
- WPF中,ListBox与数据间的绑定