Привязка к шаблону другого элемента управления - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть шаблон элемента управления для 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 голосов
/ 14 декабря 2011

Во второй DataGrid:

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

RelativeSource позволяет вам пройти по визуальному дереву и, следовательно, найти материнскую DataGrid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...