У меня есть datagrid с некоторой условной строкой. И я хочу, чтобы, если я выберу определенную строку в сетке данных, выбранный цвет изменится в зависимости от значения моей записи. Предположим, у меня есть запись о Students с флагом IsDropOut.

А затем, если я нажму на выбранную запись студента, выбранная строка изменит цвет в соответствии со значением IsDropOut. Если это true, он установит красный фон выбранной строки, а если IsDropOut равен false, он изменит фон выбранной строки на зеленый.

Может быть так

       <DataGrid.Resources>

                    <Style TargetType="{x:Type DataGridCell}">
                        <Style.Triggers>
                            <MultiDataTrigger>
                                <MultiDataTrigger.Conditions>
                                    <Condition Binding="{Binding Path=DataGridCell.IsSelected}" Value="True" />
                                    <Condition Binding="{Binding Path=IsDropOut}" Value="true" />
                                </MultiDataTrigger.Conditions>
                                <Setter Property="Background" Value="red" />
                            </MultiDataTrigger>

                        </Style.Triggers>
                    </Style>
                </DataGrid.Resources>

Но этот код не работает. Итак, как это сделать? У кого-нибудь есть предложения?

0
mrhands 4 Фев 2015 в 05:12

2 ответа

Лучший ответ

Наконец-то решаю вот это .. Спасибо за идею ..

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Path=IsDropOut}" Value="True" />
        <Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Self}}" Value="True" />
    </MultiDataTrigger.Conditions>
    <Setter Property="Background" Value="Red" />
    <Setter Property="Foreground" Value="White" />
</MultiDataTrigger>
1
mrhands 4 Фев 2015 в 05:09

Попробуй это :

          <Style TargetType="DataGridCell">
                <Style.Triggers>
                    <MultiTrigger>
                        <MultiTrigger.Conditions>
                            <Condition Property="IsSelected" Value="True" />
                            <Condition Property="IsDropOut" Value="true" />
                        </MultiTrigger.Conditions>
                        <Setter Property="Background" Value="Red" />
                    </MultiTrigger>
                </Style.Triggers>
            </Style>
0
Amol Bavannavar 4 Фев 2015 в 03:46