三种模式的数据绑定。
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>