将datatemplate绑定到ContentControl的内容

时间:2011-06-02 11:33:45

标签: wpf xaml data-binding datatemplate

如何将datatemplate中的文本框文本属性绑定到ContentControl内容属性?
(没有通过ElementName的bindng)

这是我的代码(不起作用):

<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 个答案:

答案 0 :(得分:5)

使用相对源绑定:

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

修改:我可能应该注意,就绑定目标而言,这相当于{Binding}DataContext中的ContentTemplateContent

然而,直接绑定到DataContext不会传播回源DataContext,因此Content的{​​{1}}会更改什么时候使用这个绑定(或双向兼容变体ContentControl,在我能说的时候,它完全没有变化。)