1
我有一個包含一堆這些驗證類的TreeView。最終,我希望將項目的背景顏色更改爲綠色,如果該類的成功屬性爲true,並且如果該屬性爲false,則將其更改爲紅色。C#WPF DataTemplate在屬性上設置背景顏色
public class Verify : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public string Name { get { return "Dummy Text"; } }
private bool success;
public bool Success
{
get { return success; }
set { success = value; NotifyPropertyChanged(); }
}
public Verify()
{
Success = true; /* Test that the background changes color */
}
}
這裏就是我在我的TreeView至今得到。爲了測試我創建了一個ObservableCollection<Verify> VerifyWrite
並添加了一些條目。這是我的TreeView被綁定到。我期望我的TreeView中的所有條目都是綠色的,因爲我已將「成功」設置爲true,但背景未設置爲任何值。
<TreeViewItem Header="Verify Write" IsExpanded="True" ItemsSource="{Binding VerifyWrite}">
<TreeViewItem.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Success}" Value="True">
<Setter Property="TreeViewItem.Background" Value="Green"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</TreeViewItem.ItemTemplate>
</TreeViewItem>
我很新,很迷茫,在這個WPF的東西。