我有一个带有2个数据级别的WPF TreeView和2个HierarchicalDataTemplate来格式化每个级别。从第二级的HierarchicalDataTemplate,我需要在第一级的类中绑定一个属性。我已经尝试过这种方式,但是不起作用:

Text="{Binding Path=Ori, RelativeSource={RelativeSource TemplatedParent}}"


Ori作为属性名称

即使这样,它也不起作用:

Text="{Binding Path=tOri, RelativeSource={RelativeSource TemplatedParent}}"


在绑定tOri属性的fisrt TextBlock中使用HierarchicalDataTemplate作为Ori的名称。

你能帮助我吗?

最佳答案

TemplatedParent仅引用ControlTemplate中的父控件,因此不适用于DataTemplates。您可以改用FindAncestor查找父级TreeViewItem,然后访问其DataContext。

Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TreeViewItem}, AncestorLevel=2}, Path=DataContext.Ori}"

07-25 22:12