DataGrid为所选项目排列“前景色”

时间:2012-07-10 17:26:58

标签: wpf wpfdatagrid

我为我的DataGrid定义了一个RowStyle,将我的网格中具有被拒绝状态或Reject_X或Reject_Y的项目的前景颜色更改为红色:

            <Style TargetType="DataGridRow">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Status}" Value="{x:Static StatusTypes:Status.Reject_X}">
                        <Setter Property="Foreground" Value="Red"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Status}" Value="{x:Static StatusTypes:Status.Reject_Y}">
                        <Setter Property="Foreground" Value="Red"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>

此样式工作正常,但所选项目的前景色为黑色而不是红色。所以,我需要知道如何设置所选项目的样式,以便前景色也是红色。即。

如果选择了项目且状态等于Reject_X或Reject_Y,则将Foreground设置为红色。

2 个答案:

答案 0 :(得分:0)

我认为这样的事情应该这样做。我会在你的DataGridRow样式上放置类似的MultiTriggers ......

 <Style TargetType="DataGridCell">
    <Style.Triggers>
        <MultiTrigger>
            <MultiTrigger.Conditions>
                <Condition Property="IsSelected" Value="True"/>
                <Condition Binding="{Binding Status}" Value="{x:Static StatusTypes:Status.Reject_X}"/>
            </MultiTrigger.Conditions>
            <Setter Property="Foreground" Value="Red"/>
        </MultiTrigger>
        <MultiTrigger>
            <MultiTrigger.Conditions>
                <Condition Property="IsSelected" Value="True"/>
                <Condition Binding="{Binding Status}" Value="{x:Static StatusTypes:Status.Reject_Y}"/>
            </MultiTrigger.Conditions>
            <Setter Property="Foreground" Value="Red"/>
        </MultiTrigger>
    </Style.Triggers>
</Style>

答案 1 :(得分:0)

我会查找多数据触发器。这应该会给你你想要的东西。