У меня есть TreeView, содержащий кучу этих классов проверки. В конечном счете, я хотел бы изменить цвет фона элемента на «Зеленый», если свойство «Свойство класса» является истинным и красным, если свойство является ложным.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 станут зелеными, потому что я установил для 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.