【问题标题】:Different selection colors for different DataGrid rows不同 DataGrid 行的不同选择颜色
【发布时间】:2012-06-13 05:35:32
【问题描述】:

我正在尝试为数据网格中的不同行设置不同的颜色,具体取决于行的类型以及是否被选中:

<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: key cannot be null。

我该如何解决这个问题?

【问题讨论】:

标签: c# wpf xaml multidatatrigger


【解决方案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>

【讨论】:

    猜你喜欢
    • 2020-08-30
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 2014-05-15
    相关资源
    最近更新 更多