Привязка таблицы данных к содержимому ContentControl - PullRequest
3 голосов
/ 02 июня 2011

Как связать текстовое свойство текстового поля в пределах таблицы данных со свойством ContentControl Content?
(Без привязки через ElementName)

Это мой код (который не работает):

<Window.Resources>
    <DataTemplate x:Key="Temp">
       <TextBox TextWrapping="Wrap" Text="{TemplateBinding Content}" Height="20" Width="Auto"/>           
    </DataTemplate>
</Window.Resources>
<Grid>
    <ContentControl  ContentTemplate="{DynamicResource Temp}" Content="1"/>           
</Grid>

1 Ответ

5 голосов
/ 02 июня 2011

Использовать относительную привязку источника:

Text="{Binding RelativeSource={RelativeSource AncestorType=ContentControl}, Path=Content}"

Редактировать: Я, вероятно, должен отметить, что с точки зрения целей привязки это эквивалентно {Binding}, так какDataContext в ContentTemplate - это Content.

Однако привязка непосредственно к DataContext не будет распространяться обратно к источнику DataContext, следовательно, Content из ContentControl будет не изменяется при использовании этой привязки (или двусторонней совместимой вариации {Binding .}, которая, насколько я могу судить, абсолютно ничего не меняет).

...