Una cosa particolare circa FindAncestor mi confonde, hanno uno sguardo al seguente esempio:WPF FindAncestor nel legame
<Expander.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Name="headerLabel" Content="Show Contents" Padding="0" VerticalAlignment="Center" />
<Button Name="headerButton" Margin="6,0,0,0" Content="Button" Padding="6,1" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Expander}}, Path=IsExpanded}" Value="True">
<Setter TargetName="headerLabel" Property="Content" Value="Hide Contents" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</Expander.HeaderTemplate>
io uso il codice XAML sopra per modificare il testo della mia intestazione expander personalizzato. La mia domanda è, quando devo effettivamente usare FindAncestor in modo esplicito quando voglio usare una proprietà di un antenato nella mia associazione? Perché i seguenti tre attacchi sembrano produrre lo stesso risultato in mio scenario almeno: un sacco
Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Expander}}, Path=IsExpanded}"
Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Expander}}, Path=IsExpanded}"
Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type Expander}}, Path=IsExpanded}"
ho visto di esempi di tutti e tre, è solo una questione di gusto personale?
Non posso credere di averlo perso, grazie. – dbostream