WPF DataGrid Строка и столбец Вопрос о стиле - PullRequest
2 голосов
/ 25 мая 2011

Мне нужно выделить строку MouseOver таблицы данных, что кажется простым в этом стиле:

<Style TargetType="DataGridRow">
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="Green"/>
        </Trigger>
    </Style.Triggers>
</Style>

Проблема в том, что у меня также есть стиль для некоторых ячеек только для чтения, определенный как

<Style TargetType="DataGridCell">
    <Style.Triggers>
        <Trigger Property="IsReadOnly" Value="True">
            <Setter Property="Background" Value="LightGoldenrodYellow"/>
        </Trigger>
    </Style.Triggers>
</Style>

В результате эти ячейки только для чтения не получают фон MouseOver.Как мне решить этот конфликт?Ваша помощь очень ценится.

1 Ответ

2 голосов
/ 25 мая 2011

Это не конфликт. Событие MouseOver предназначено для работы с обычной строкой и ячейкой, которые не доступны только для чтения.

Вы должны добавить MultiTrigger для этой проблемы.

Пример:

  <MultiTrigger>
    <MultiTrigger.Conditions>
      <Condition Property="IsReadOnly" Value="true" />
      <Condition Property="IsMouseOver" Value="true" />
    </MultiTrigger.Conditions>
    <Setter Property="Background" Value="Green"/>
  </MultiTrigger>

Код действителен для стиля для DataGridCell. Пример готового кода будет:

<Style TargetType="DataGridCell">    
<Style.Triggers>        
      <MultiTrigger>
        <MultiTrigger.Conditions>
          <Condition Property="IsReadOnly" Value="true" />
          <Condition Property="IsMouseOver" Value="true" />
        </MultiTrigger.Conditions>
        <Setter Property="Background" Value="Green"/>
      </MultiTrigger>
</Style.Triggers>
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...