DataTriggerって?
「バインドしているデータの値が**の時,コントロールの**プロパティを**する」等言う動作を定義できる。
DataをTriggerにして何かするよ~って感じだね。
DataTriggerのサンプル
サンプルをメモしておく。
以下のようなラジオボタンと,ラジオボタンのチェック状態によってTextBlockの表示内容が変わるというものを作った。
<StackPanel> <TextBlock Text="やる気スイッチ : "/> <RadioButton Content="オン" IsChecked="{Binding Path=IsUse}"/> <RadioButton Content="オフ"/> <Separator/> <TextBlock Text="現在の状態 : "/> <TextBlock Style="{StaticResource CurrentStatusTextStyle}"/> </StackPanel>
スタイルでDataTriggerを定義する
TextBlockのTriggersに直接指定ではエラーが起きてしまった。
原因は不明。
<Window.Resources> <Style TargetType="TextBlock" x:Key="CurrentStatusTextStyle"> <Style.Triggers> <DataTrigger Binding="{Binding Path=IsUse}" Value="True"> <Setter Property="Text" Value="やるぞー"/> </DataTrigger> <DataTrigger Binding="{Binding Path=IsUse}" Value="False"> <Setter Property="Text" Value="ちょっと休憩"/> </DataTrigger> </Style.Triggers> </Style> </Window.Resources>