绑定到另一个控件的模板

时间:2011-12-14 11:33:23

标签: wpf xaml

我有一个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的模板?

1 个答案:

答案 0 :(得分:0)

在第二个DataGrid中:

<DataGrid ItemsSource="{Binding SubThings}"
          SelectedItem="{Binding DataContext.SelectedSubThing, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}">

RelativeSource允许你走在可视树上,从而找到母DataGrid。