我有一个ObservableCollection<User>
完整的用户对象,实现INotifyPropertyChanged
。该集合被设置为我的窗口的DataContext
,其中包含ListBox
(其ItemsSource
也设置为相同的集合),TextBox
es以及标准CRUD设置的保存Button
。如何根据ObservableCollection中的INotifyPropertyChanged对象的属性更改元素的属性?
如果User对象的某个属性发生更改,我想更改save Button的背景(以及ListBox中与“当前项目”对应的行的背景)。我应该看样式和触发器吗?
我有以下样式应用于我的保存按钮,并且用户对象具有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}">
我觉得我在正确的轨道上,但我不知道如何点结合“可观察列表中的当前项目被设置为在DataContext”,其中“当前项目”在这种情况下由CollectionViewSource.GetDefaultView(ListOfUsers).CurrentItem
(其中ListOfUsers
是我的ObservableCollection<User>
)进行描述。
S如何使用绑定来更改“脏”物品的背景? – epalm 2010-11-12 21:40:45
我已经用一个如何实现你所需要的行为的例子更新了我的答案。 – Murven 2010-11-14 06:04:50