我有一个TreeView,其中包含许多这些Verify类。最终,如果该类的Success属性为true,则我想将项目的背景颜色更改为绿色;如果该属性为false,则将其更改为红色。
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中的所有条目都是绿色的,因为我已将Success设置为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方面非常新手并且一脸懵逼。