2012年10月8日月曜日

XAMLバインディング


XAMLバインディングの例をメモします。

重要なのは Binding 構文を使うと、DataContext プロパティに入っている情報を色々なプロパティの値として利用したり、ツリー構造を遡って自分の親コンテナーの DataContext プロパティに入っている情報を表現することができます。

<Grid DataContext="Pink">
    <!-- 親コントロールの DataContext プロパティの値を背景色に利用 -->
    <TextBox Height="24" Name="textBox1" Width="120"
             Text="あいうえお"
             Background="{Binding RelativeSource={RelativeSource AncestorLevel=1, AncestorType=Grid}, Path=DataContext}" Margin="192,78,190,209" />
    <!-- 自分自身の DataContext プロパティの値(ABC)の長さを Text プロパティに表示 -->
    <TextBox Height="24" Margin="192,124,190,0" Name="textBox2" VerticalAlignment="Top" Width="120"
             DataContext="ABC" Text="{Binding Length}"
             />
</Grid>