三种模式的数据绑定。
1.OneTime:一次绑定,在绑定创建时使用源数据更新目标,适用于只显示数据而不进行数据的更新。
2.OneWay:单向绑定,在绑定创建时或者源数据发生变化时更新到目标,适用于显示变化的数据。
3.TwoWay:双向绑定,在任何时候都可以同时更新源数据和目标。
绑定的语法可以用大括号表示,下面是几个例子:
< TextBlock Text="{Binding Age}" />
等同于:
< TextBlock Text="{Binding Path=Age}" />
或者显式写出绑定方向:
< TextBlock Text="{Binding Path=Age, Mode=OneWay}" />
按照数据绑定的语义,默认是 OneWa y 的,也就是说如果后台的数据发生变化,前台建立了绑定关系的相关控件也应该发生更新。
一个小例子,通过slider的值来控制矩形控件图形的宽度
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!--这个是绑定的资源,它的值的变化会引起下面的矩形的变化-->
<Slider Name="slider"
Value="90"
Grid.Row="0"
Maximum="180"
Margin="24" />
<TextBlock Name="txtblk"
Text="{Binding ElementName=slider, Path=Value}"
Grid.Row="1"
FontSize="48"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
<Rectangle Grid.Row="2"
Width="{Binding ElementName=slider, Path=Value}"
RenderTransformOrigin="0.5 0.5"
Fill="Blue">
<Rectangle.RenderTransform>
<RotateTransform x:Name="rotate"
Angle="90" />
</Rectangle.RenderTransform>
</Rectangle>
</Grid>