7655


WPFでラジオボタンのユーザーコントロールを作っています。  
このラジオボタンの外見を、`IsChecked`と`IsEnabled`の値に応じて変えたいです。  
どちらも`bool`なので、合計で4種類の外見(`DataTemplate`)を定義することになると思います。

下記のコードのように、`IsChecked`のみであれば、`Style.Triggers`によって条件を指定し、適用する`DataTemplate`を切り替えることができることは分かっています。  
しかし、`IsChecked`と`IsEnabled`の両方を見て切り替える方法が分かりません。

[code]

    <!-- 4種類の外見に対応するDataTemplateを定義 -->
    <DataTemplate x:Key="UnselectedStyle"><!--略--></DataTemplate>
    <DataTemplate x:Key="SelectedStyle"><!--略--></DataTemplate>
    <DataTemplate x:Key="DisabledUnselectedStyle"><!--略--></DataTemplate>
    <DataTemplate x:Key="DisabledSelectedStyle"><!--略--></DataTemplate>
    
    <Style TargetType="{x:Type RadioButton}">
        <!-- デフォルトの外見 -->
        <Setter Property="ContentTemplate" Value="{StaticResource UnselectedStyle}"/>
        <!--略-->
    
        <!-- 条件に応じた外見 -->
        <Style.Triggers>
            <Trigger Property="IsChecked" Value="True"> <!-- ←ここでIsEnabled=Trueも条件に加えたい -->
                <Setter Property="ContentTemplate" Value="{StaticResource SelectedStyle}"/>
            </Trigger>
        </Style.Triggers>
    </Style>
    
[/code]

何かご存知の方おられましたら、教えてください。


CC BY-SA 3.0
2015-03-09T09:02:02.790
7653
2015-03-09T09:15:49.027
8078
question
wpf xaml
XAMLのStyle.Triggersで複合条件を指定したい


MultiTriggerがつかえます。

[code]

    <Style.Triggers>
        <MultiTrigger>
            <MultiTrigger.Conditions>
                <Condition Property="IsChecked" Value="true" />
                <Condition Property="IsEnabled" Value="true" />
            </MultiTrigger.Conditions>
    
            <Setter Property="ContentTemplate" Value="{StaticResource SelectedStyle}"/>
        </MultiTrigger>
    </Style.Triggers>
    
[/code]


CC BY-SA 3.0
2015-03-09T09:15:49.027
7655
2015-03-09T09:15:49.027
4926
7653
answer