WPF DataGrid - привязка к DataGridRow.IsSelected изменяет внешний вид. - PullRequest
0 голосов
/ 18 марта 2020

Фон:

Я создаю UserControl , который содержит DataGrid , моя основная функциональность работает так, как мне бы хотелось , Это было до тех пор, пока я не применил стиль к своему приложению через ResourceDictionary (у меня нет контроля над содержимым ResourceDictionary )

По сути, сейчас я получаю некоторые странные проблемы внешнего вида, относящиеся к AlternatingRowBackground , из-за чего внешний вид каждой второй строки представляет собой странное сочетание стиля и внешнего вида по умолчанию. Это приводит к тому, что содержимое DataGrid становится нечитаемым.

Я сам не установил это свойство AlternatingRowBackground , предпочитая оставить это до стиля, определенного в словаре.

Я могу решить проблему с внешним видом, удалив из моей DataGrid следующее:

<DataGrid.RowStyle>
   <Style TargetType="{x:Type DataGridRow}">
      <Setter Property="IsSelected"
              Value="{Binding Path=IsSelected}" />
   </Style>
</DataGrid.RowStyle>

Это, конечно, функциональность, которая мне требуется. Я поиграл с входными данными, чтобы убедиться, что я расширяю стиль, а не перезаписываю, например:

<DataGrid.RowStyle>
   <Style TargetType="{x:Type DataGridRow}" BasedOn="{StaticResource {x:Type DataGridRow}}">
      <Setter Property="IsSelected"
              Value="{Binding Path=IsSelected}" />
   </Style>
</DataGrid.RowStyle>

(Обратите внимание, что два набора кода выше дают два разных вида, оба из которых не читаются )

Я также попытался полностью исключить чередующиеся строки, установив AlternationCount в ноль / единицу и т. Д. c.

К сожалению, ничего из этого не сработало.

Вопрос:

Существует ли более правильный способ привязки к свойству IsSelected DataGridRow ?

В качестве альтернативы, есть ли способ заставить все строки выглядеть одинаково, избегая чередующихся строк?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...