Я хочу дать другой заголовок для Expander
, когда он закрыт. Когда значение постоянное, все работает хорошо, но когда я пытаюсь привязать заголовок к DP (например, Presenter
) в моем элементе управления, это не работает. Вот моя упрощенная разметка:
<UserControl x:Class="MyProject.Views.PlanDisplayer"
xmlns=...
xmlns:local="clr-namespace:MyProject.Views"
x:Name="This">
<Grid>
...
<Expander>
<Expander.Style>
<Style TargetType="Expander" BasedOn="{StaticResource ResourceKey=ChildExpanderStyle}">
<Setter Property="Header">
<Setter.Value>
<!--Works-->
<TextBlock Text="{Binding ElementName=This, Path=Presenter.Walls.Count, StringFormat='Walls: [{0}]'}"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsExpanded" Value="False">
<Setter Property="Header">
<Setter.Value>
<!--Doesn't work → Error: 4 : Cannot find source for binding-->
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=local:PlanDisplayer, Mode=FindAncestor}, Path=Presenter.Walls.Count, StringFormat='Walls [{0}]'}"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Expander.Style>
...
</Expander>
</Grid>
</UserControl>