我有一个名为TaskTree的TreeView,其中每个TreeViewItem都是一个Task对象,其中一个属性是PriorityID。我按如下方式设置TreeView的DataContext:
TaskTree.DataContext = AllTasks
其中AllTasks是ObserableCollection(Of Task)。我想根据PriorityID的值更改每个TreeViewItem的背景颜色。我在XAML中执行如下操作:
<Style
TargetType="TreeView">
<Style.Triggers>
<DataTrigger
Binding="{Binding Path=PriorityID}" Value="142">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
虽然这与MSDN上的一个示例完全匹配,但后台没有改变,我找不到错误。
修改 如果它是相关的,这里是TreeView的设置:
<TreeView
x:Name="TaskTree"
ItemsSource="{Binding}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate
ItemsSource="{Binding Path=SubTasks}">
<TextBlock Text="{Binding Path=Title}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
答案 0 :(得分:0)
您的样式是以树为目标,但您需要定位该项目。你现在拥有它的方式,它预计树本身就是PriorityID,而不是。