2010-11-17 170 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}可以做到這一點!