一、初识数据绑定
WPF(Windrows Presentation Foundation)数据绑定提供了一种简单而持续的方式去与数据交互并将其呈现。元素可以通过各种形式的数据源以CLR(common language runtime)对象和xml对象如Button、ListBox、ListView等方式与数据联系起来。
数据绑定建立了在应用UI和业务逻辑之间的一种联系。一旦数据绑定成功,当数据改变值的时候,与数据绑定的元素会将其值自动显示出来。
以下将介绍如何构建数据绑定。
二、明确数据源
有多种方法去明确绑定的数据源。当你在同一源上绑定多个属性的时候,在父元素上使用DataContext属性行之有效。然而有时,在单个对象逐一声明绑定的数据源更为合适。如
<DockPanel.Resources>
<c:MyData x:Key="myDataSource"/>
</DockPanel.Resources>
<Button Width="150" Height="30"
Background="{Binding Source={StaticResource myDataSource},
Path=ColorName}">I am bound to be RED!</Button>
三、明确值所在的路径
如果你绑定的数据源是一个对象,你可以用Path属性去明确所绑定的值。如果绑定的是xml数据,你可以使用XPath属性来明确绑定的值。在有些情况下,即使你使用xml对象用Path属性来实现绑定也许更便捷。比如,如果你想获取返回的XmlNode对象的Name属性,你可以使用Path属性而不是XPath属性。
<ListBox ItemsSource="{Binding}"
IsSynchronizedWithCurrentItem="true"/>
四、Binding及BindingExpression
Binding类在声明Binding时是一个高级的类,它提供了很多可供你明确绑定特征的属性。与此相关的一个类——BindingExpression,它保持了源与目的对象之间的联系。一个Binding对象包含了可在一些binding表达式中传递的信息。
//make a new source
MyData myDataObject = new MyData(DateTime.Now);
Binding myBinding = new Binding("MyDataProperty");</