2010-11-17 138 views
2

我有一个关于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(自我和TemplatedParent),但似乎没有任何工作。 有些想法会很棒,thx。

回答

1

你尝试过:

<DataTemplate x:Key="MyExpanderHeaderTemplate"> 
    <TextBlock Text="{Binding .}"> 
     // some triggering stuff 
    </TextBlock> 
</DataTemplate> 
1

看看RelativeSourceMode.FindAncestor

<TextBlock 
    Text="{Binding RelativeSource={RelativeSource RelativeSourceMode=FindAncestor, AncestorType={x:Type Controls:Expander}}}, Path=Header"/> 
1

只是这样做

<DataTemplate x:Key="MyExpanderHeaderTemplate"> 
    <TextBlock Text="{Binding}"/> 
</DataTemplate> 
1

感谢您的快速解答。 FindAncestor在WPF中无法解析AncestorType的方式似乎无法在Silverlight中工作 但是{Binding}或{Binding}可以做到这一点!