2

行のタイプと選択されているかどうかに基づいて、データグリッドのさまざまな行にさまざまな色を設定しようとしています。

<Style TargetType="DataGridCell" x:Key="ActiveCellStyle">
    <Setter Property="Foreground" Value="Black"/>
    <Style.Triggers>
        <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                 <Condition Binding="{Binding Type}" Value="0"/>
                 <Condition Property="IsSelected" Value="False"/>
            </MultiDataTrigger.Conditions>      
            <Setter Property="Background" Value="#FFDFE6ED"/>
        </MultiDataTrigger>
        <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                 <Condition Binding="{Binding Type}" Value="0"/>
                 <Condition Property="IsSelected" Value="True"/>
            </MultiDataTrigger.Conditions>      
            <Setter Property="Background" Value="#FF6CAFF1"/>
        </MultiDataTrigger>
        ...
    </Style.Triggers>
</Style>

これを実行すると、ArgumentExceptionが発生します。キーをnullにすることはできません。

どうすればこれを修正できますか?

4

1 に答える 1

1

使用MultiTriggerする場合PropertyMultiDataTrigger使用する場合Binding、それらを組み合わせることはできません。だから変更

<Condition Property="IsSelected"

<Condition Binding="{Binding RelativeSource={RelativeSource Self},
                             Path=IsSelected}"

そしてそれはうまくいくはずです

<Style TargetType="DataGridCell" x:Key="ActiveCellStyle">
    <Setter Property="Foreground" Value="Black"/>
        <Style.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding Type}" Value="0"/>
                    <Condition Binding="{Binding RelativeSource={RelativeSource Self},
                                                 Path=IsSelected}"
                                       Value="False"/>
                </MultiDataTrigger.Conditions>
                <Setter Property="Background" Value="#FFDFE6ED"/>
            </MultiDataTrigger>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding Type}" Value="0"/>
                <Condition Binding="{Binding RelativeSource={RelativeSource Self},
                                             Path=IsSelected}"
                           Value="True"/>
            </MultiDataTrigger.Conditions>
            <Setter Property="Background" Value="#FF6CAFF1"/>
        </MultiDataTrigger>
    </Style.Triggers>
</Style>
于 2012-06-09T13:16:31.687 に答える