我有一个带有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}"