我有一個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