WPF датагрид и раскраска рядов - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь выполнить что-то, что было бы простым в WinForms, но оказалось почти невозможным в WPF.Мне нужно покрасить строки (очень длинные, много значений), используя два оттенка (один для нечетных строк, один для четных строк - иначе AlternatingRowBackground).Кажется, что - если я устанавливаю какую-либо кисть в AlternatingRowBackground, что бы я ни пытался установить для этого (то есть ограничил какое-то значение в моей таблице данных, чтобы некоторые строки были выделены красным фоном), - манипулируя RowStyle или пытаясь заставить фон строки внутри LoadedRowфункция события - все это игнорируется.Если я удалю кисть AlternatingRowBackground, RowStyle начнет работать, но у меня нет чередующихся оттенков строк.

Поэтому я попытался использовать MultiDataTrigger для (multi) привязки этого значения, которое должно быть выделено и что-то, что показало бы мне индекс строки- вручную создавать обычные / чередующиеся цвета.Мне это нужно, потому что DataGrid фильтруется.Я не могу использовать некоторые поддельные значения в таблице данных, чтобы определить текущий индекс строки.Другими словами - индекс строки DataGrid отличается от индекса строки таблицы данных.Я пытался связать DataGridRow сам.Но строка во время преобразования не имеет индекса в сетке данных (всегда -1).

Есть ли способ установить и AlternatingRowColor, и некоторые строки, выделенные другим фоном одновременно?

1 Ответ

0 голосов
/ 14 ноября 2018

Проблема в приоритете. Значения, установленные в атрибутах, имеют более высокий приоритет, чем в стилях. Таким образом, если вы установите AlternatingRowBackground в Style, а не в качестве атрибута элемента, все будет работать так, как задумано:

<DataGrid.Style>
    <Style TargetType="DataGrid">
        <Setter Property="AlternatingRowBackground" Value="Aquamarine"/>
    </Style>
</DataGrid.Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...