Windows Presentation Foundation(WPF)中的数据绑定(控件与控件值的绑定)

时间:2021-12-17 00:35:42

--------------------------------------------------------------------------------

WPF支持以下几种绑定:
(1)控件到控件的绑定
(2)XML数据的绑定(含内联XML数据和外部XML文件数据)
(3).Net对象的数据绑定
(4)DataSet,DataTable等数据绑定
下面几篇中陆续说明这几种数据绑定的情况,希望对学习WPF的你有所裨益。

1. 控件到控件的绑定<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" >

<Canvas x:Name="LayoutRoot"> 
<TextBox x:Name="txtBoxInput" Text="这里输入文字,下面的文字会跟着变!" Width="404"/>
<TextBlock x:Name="txtBlockOutput" Width="404" Canvas.Top="23.687">
<TextBlock.Text>
<Binding ElementName="txtBoxInput" Path="Text" />
</TextBlock.Text>
</TextBlock>
</Canvas>
</Window>

说明:
(1)上面将txtBoxInput输入的文字(Text属性)绑定到了下面的txtBlockOutput的Text属性上。当TextBox中的文字改变时,下面TextBlock显示的文字也跟着改变,实现了数据绑定。
(2)绑定的方法是在TextBlock的Text属性中,使用<Binding ElementName="txtBoxInput" Path="Text" />,这里ElementName属性的值是源控件的名称,Path属性值为源控件的Text属性。

为了使XAML的语法更为简洁明了,可以使用“{Binding ElementName=源对象名称, Path=源对象属性值名称}”的方式:
比如:

<Window
xmlns="​​​http://schemas.microsoft.com/winfx/2006/xaml/presentation​​​"
xmlns:x="​​​http://schemas.microsoft.com/winfx/2006/xaml​​​"
>
<Canvas x:Name="LayoutRoot">
<TextBox x:Name="txtBoxInput" Text="这里输入文字,下面的文字会跟着变!" Width="404"/>
<TextBlock x:Name="txtBlockOutput" Text="{Binding ElementName=txtBoxInput,Path=Text}"
</Canvas>
</Window>


我们发现,txtBlockOutput的Text属性用“{}”括了起来,里面有Binding ElementName=xxx,Path=xxx之类的语句。注意属性值与属性值之间使用逗号(,)隔开了。这是XAML的语法。

看一下最后的效果图片:

Windows Presentation Foundation(WPF)中的数据绑定(控件与控件值的绑定)



下一篇来说说使用XMLDataProvider进行数据绑定。