我有一个关于Silverlight的快速绑定问题。 我有一些扩展器,想要覆盖他们的标题模板
<Controls:Expander Header="MyHeaderTitle"
HeaderTemplate="{StaticResource MyExpanderHeaderTemplate}">
//Content
</Controls:Expander>
<Controls:Expander Header="MyNextHeaderTitle"
HeaderTemplate="{StaticResource MyExpanderHeaderTemplate}">
//Content
</Controls:Expander>
在标题模板中,我有一个文本框,想要将文本绑定到扩展器的标头。
<DataTemplate x:Key="MyExpanderHeaderTemplate">
<TextBlock Text="{Binding Path=Header}">
// some triggering stuff
</TextBlock>
</DataTemplate>
我尝试了一些使用RelativeSource(Self和TemplatedParent)的东西,但似乎没有任何效果。 有些想法很棒,谢谢。
答案 0 :(得分:1)
查看RelativeSourceMode.FindAncestor
<TextBlock
Text="{Binding RelativeSource={RelativeSource RelativeSourceMode=FindAncestor, AncestorType={x:Type Controls:Expander}}}, Path=Header"/>
答案 1 :(得分:1)
你试过了吗?
<DataTemplate x:Key="MyExpanderHeaderTemplate">
<TextBlock Text="{Binding .}">
// some triggering stuff
</TextBlock>
</DataTemplate>
答案 2 :(得分:1)
就这样做
<DataTemplate x:Key="MyExpanderHeaderTemplate">
<TextBlock Text="{Binding}"/>
</DataTemplate>
答案 3 :(得分:1)
感谢您的快速解答。 FindAncestor似乎无法在Silverlight下以WPF中的方式工作(无法解析AncestorType ..) 但是{Binding}或{Binding。}可以做到这一点!