У меня есть ObservableCollection<User>
полный пользовательских объектов, которые реализуют INotifyPropertyChanged
. Коллекция установлена как DataContext
моего Окна, которая содержит ListBox
(чья ItemsSource
также установлена в той же коллекции), число TextBox
es и сохранение Button
, стандартный CRUD установка.
Я хочу изменить фон кнопки «Сохранить» (и фон строки в ListBox, которая соответствует «текущему элементу»), если изменяется одно из свойств объектов User. Должен ли я смотреть на стили и триггеры?
У меня есть следующий стиль, примененный к моей кнопке сохранения, а объекты User имеют свойство public bool IsDirty
.
<Style x:Key="PropertyChangedStyle" TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding Source=???, Path=IsDirty}" Value="True">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
<Button ... Style="{StaticResource PropertyChangedStyle}">
Я думаю, что я на правильном пути, но я не понимаю, как указать привязку к «текущему элементу в наблюдаемом списке, который установлен как текстовый текст», где «текущий элемент» в этом случае описывается CollectionViewSource.GetDefaultView(ListOfUsers).CurrentItem
(где ListOfUsers
- мой ObservableCollection<User>
).