在TreeView无效的情况下使用XAML样式触发器

时间:2017-09-17 22:00:30

标签: wpf xaml treeview

我有一个名为TaskTree的TreeView,其中每个TreeViewItem都是一个Task对象,其中一个属性是PriorityID。我按如下方式设置TreeView的DataContext:

TaskTree.DataContext = AllTasks

其中AllTask​​s是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>

1 个答案:

答案 0 :(得分:0)

您的样式是以树为目标,但您需要定位该项目。你现在拥有它的方式,它预计树本身就是PriorityID,而不是。