mogmo .NET

C#/XAML/VB6たまにC++についてメモ程度に書いていく。あくまで自分用。責任は取れません。

DataTriggerを使う

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>