动态设置每个节点的图像

时间:2015-05-25 19:41:49

标签: wpf xaml treeview datatemplate datatrigger

所以我在TreeView中有3个级别的节点:

  • 单个根节点(应显示Image1.png)
  • 某些二级节点(应显示Image2.png)
  • 每个第二级节点都有一些第三级节点(应显示Image3.png)

我尝试使用DataTemplate动态地将显示图像分配给每个节点,具体取决于其级别。由于WPF中的级别与WinForms中的级别不同,我只是使用Tag的{​​{1}}属性来存储它们的级别。然后我在TreeViewItem之后写了这个以分配显示图像:

Style

是的,你猜对了;它没有用。有人可以确定问题所在吗?或者我是以错误的方式做到的?

1 个答案:

答案 0 :(得分:0)

现在,您的{Binding Tag}将尝试查找TreeViewItem的DataContext的Tag属性,而不是DependencyProperty。因为,我猜测,DataContext中没有Tag属性,它不会起作用。如果你在VS中查看输出Windows,你应该会看到整个地方的绑定错误。

您需要做的是将相对源添加到绑定中,以便它查看TreeViewItem而不是DataContext。这是一个例子:

<DataTrigger Binding="{Binding Path=Tag, RelativeSource={RelativeSource AncestorType={x:Type TreeViewItem}}}" Value="0">