Как изменить цвет строки DataGrid при изменении записи - PullRequest
2 голосов
/ 28 ноября 2011

Я хотел бы добиться следующего через связывание, если это возможно ...

У меня есть WPF DataGrid, привязанный к ObservableCollection

public class Product
{
    public string Code { get; set; }
    public string Desc { get; set; }
    public bool Updated { get; set; }
}

Моим сеткам DataContext присвоено наблюдаемоеcollection.

Чего я хотел бы достичь ...

  • Когда пользователь изменяет строку в сетке данных, поле «Обновленный» в Product изменяется на «true».
  • В результате этого я могу каким-то образом связать цвет строки сетки, чтобы отобразить другой цвет, который укажет пользователю, что эта строка еще не сохранена.

Я думаю что мне нужно будет реализовать INotifyPropertyChanged для достижения этой цели, но не уверен, как именно это сделать.Кроме того, есть ли свойство сетки в сетке, чтобы гарантировать, что изменения, сделанные в пользовательском интерфейсе, обновят хранилище резервных копий?

Cheers.

1 Ответ

4 голосов
/ 28 ноября 2011
  1. Ваш Product класс должен реализовать INPC, поэтому привязки к Updated обновляются.

    Вы можете дополнительно изменить установщики всех свойств, чтобы установить Updated на true.

  2. Вы можете вызвать на имущество:

    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Updated}" Value="True">
                    <Setter Property="Background" Value="Orange"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
    
...