Смена цвета строки DataGrid

340
01 сентября 2017, 20:51

Как программно можно менять цвет строки в DataGrid? Например, приходит новое сообщение и нужная строка выделяется определенным цветом.

Answer 1

Решение подсмотрено здесь

Вам потребуется в VM-классе заявки добавить свойство показывающее ее "активность", я назвал его IsActive.
Тогда задача решается простым DataTrigger:

<DataGrid ItemsSource="{Binding Requests}"
          AutoGenerateColumns="False">
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsActive}" Value="true">
                    <Setter Property="Background" Value="Red"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
    <DataGrid.Columns>
        <DataGridTextColumn Header="Рег. №" Binding="{Binding RegNum}"/>
        <DataGridTextColumn Header="Наименование" Binding="{Binding Name}"/>
    </DataGrid.Columns>
</DataGrid>

READ ALSO
Синдром ломающегося базового класса [требует правки]

Синдром ломающегося базового класса [требует правки]

Объясните "Синдром ломающегося базового класса"Интересуют конкретные примеры

436
Linq c#, особенности работы с IEnumerable&lt;T&gt;-ами

Linq c#, особенности работы с IEnumerable<T>-ами

Простите, боюсь, не получится четко сформулировать вопрос и показать пример кода

430
Awesomium многопоточность

Awesomium многопоточность

Работаю с Telegram APi от MrRound Robin и Awesomium

450