更新时间:2022-09-17 09:42:16
一、WPF绑定各种数据源索引
二、WPF绑定各种数据源之元素控件属性
1.绑定Value路径
<TextBlock Margin= "327,378,331,363" Name= "textBlock1" Text= "{Binding ElementName=slider1, Path=Value}" />
<Slider Height= "22" Minimum= "0" Maximum= "100" HorizontalAlignment= "Left" Margin= "135,346,0,0" Name= "slider1" VerticalAlignment= "Top" Width= "100" />
|
与上面等效的C#代码如下:
textBlock1.SetBinding(TextBlock.TextProperty, new Binding() { Path = new PropertyPath( "Value" ), Source = slider1});
|
效果图:
2、绑定到Text.Length路径
XAML:
<TextBox Height= "23" HorizontalAlignment= "Left" Margin= "37,48,0,0" Name= "textBox1" Text= "{Binding Path=Text.Length, ElementName=textBox2, Mode=OneWay}"
VerticalAlignment= "Top" Width= "120" />
<TextBox Height= "23" HorizontalAlignment= "Left" Margin= "37,92,0,0" Name= "textBox2" VerticalAlignment= "Top" Width= "120" />
|
与上面等效的C#代码如下:
textBox1.SetBinding(TextBox.TextProperty, new Binding() { Path = new PropertyPath( "Text.Length" ),Source = textBox2, Mode=BindingMode.OneWay});
|
3、绑定到索引器
<TextBox Height= "23" HorizontalAlignment= "Left" Margin= "37,48,0,0" Name= "textBox1" Text= "{Binding Path=Text.[2], ElementName=textBox2, Mode=OneWay}"
VerticalAlignment= "Top" Width= "120" />
<TextBox Height= "23" HorizontalAlignment= "Left" Text= "Work Hard" Margin= "37,92,0,0" Name= "textBox2" VerticalAlignment= "Top" Width= "120" />
|
此处等效的C#代码略
4、如果Binding的源是集合时,使用默认元素当Path使用,则语法如下
List< string > strCityList = new List< string >() { "Hangzhou" , "Shanghai" , "Beijing" };
textBox3.SetBinding(TextBox.TextProperty, new Binding( "/" ) { Source = strCityList });
textBox4.SetBinding(TextBox.TextProperty, new Binding( "/Length" ){Source = strCityList, Mode = BindingMode.OneWay});
textBox5.SetBinding(TextBox.TextProperty, new Binding( "/[3]" ) { Source = strCityList, Mode = BindingMode.OneWay });
|
效果图如下:
5.没有Path的绑定
这是一种特殊的情况,Binding源本身就是数据且不需要Path来指明,string、int等基本类型就是这样,他们本身就是数据,无法指出通过那个属性访问这个数据,这时我们只需将Path设置成"."就可以了。请看下面的代码:
<Window.Resources> <sys:String x:Key= "myStr" >
Work Hand Work Smart
</sys:String>
</Window.Resources> |
XAML:
<TextBox Height= "23" HorizontalAlignment= "Right" Margin= "0,65,199,0" Text= "{Binding Path=. ,Source={StaticResource ResourceKey=myStr}, Mode=OneWay}" Name= "textBox6" VerticalAlignment= "Top" Width= "141" />
|
下面的代码可以写成Text="{Binding Path=. ,Source={StaticResource ResourceKey=myStr}, Mode=OneWay}" 或Text="{Binding Source={StaticResource ResourceKey=myStr}, Mode=OneWay}"
本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/09/06/2168600.html,如需转载请自行联系原作者