我有一个DataGrid
的控件模板,使用另一个DataGrid
来获取行详细信息。
<DataGrid ItemsSource="{Binding SomeData}"
SelectedItem="{Binding SelectedThing, RelativeSource={RelativeSource TemplatedParent}}"
RowDetailsTemplate="{StaticResource RowDetailsTemplate}">
...
SelectedItem
绑定到控件的SelectedThing
属性。
行详细信息模板包含以下内容:
<DataGrid ItemsSource="{Binding SubThings}"
SelectedItem="{TemplateBinding SelectedSubThing}">
...
我想将SelectedItem
绑定到同一控件的另一个属性(SelectedSubThing
)。问题是TemplateBinding
在这里不起作用,因为它不是指同一个控件。
如何将此绑定指向父DataGrid
的模板?
答案 0 :(得分:0)
在第二个DataGrid中:
<DataGrid ItemsSource="{Binding SubThings}"
SelectedItem="{Binding DataContext.SelectedSubThing, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}">
RelativeSource允许你走在可视树上,从而找到母DataGrid。