Как связать свойство родительского элемента - PullRequest
2 голосов
/ 17 ноября 2010

У меня есть быстрый обязательный вопрос о Silverlight.У меня есть некоторые Expander и я хочу переписать их шаблоны заголовков

<Controls:Expander Header="MyHeaderTitle"
                   HeaderTemplate="{StaticResource MyExpanderHeaderTemplate}">
   //Content
</Controls:Expander>
<Controls:Expander Header="MyNextHeaderTitle"
                       HeaderTemplate="{StaticResource MyExpanderHeaderTemplate}">
    //Content
</Controls:Expander>

В шаблоне заголовка у меня есть текстовое поле и я хочу привязать текст к заголовку расширителя.Я пробовал некоторые вещи с RelativeSource (Self и TemplatedParent), но, похоже, ничего не работает.Некоторые идеи были бы великолепны, спасибо.

Ответы [ 4 ]

1 голос
/ 17 ноября 2010

Спасибо за быстрые ответы. FindAncestor не работает в Silverlight так, как в WPF (не может разрешить AncestorType ..) Но {Binding} или {Binding.} Добиваются цели!

1 голос
/ 17 ноября 2010

вы пробовали:

<DataTemplate x:Key="MyExpanderHeaderTemplate">
    <TextBlock Text="{Binding .}">
       // some triggering stuff
    </TextBlock>
</DataTemplate>
1 голос
/ 17 ноября 2010

Просто сделай это

<DataTemplate x:Key="MyExpanderHeaderTemplate"> 
    <TextBlock Text="{Binding}"/>
</DataTemplate> 
1 голос
/ 17 ноября 2010

Взгляните на RelativeSourceMode.FindAncestor

<TextBlock 
  Text="{Binding RelativeSource={RelativeSource RelativeSourceMode=FindAncestor, AncestorType={x:Type Controls:Expander}}}, Path=Header"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...