7
一個特別的東西約FindAncestor混淆了我,看看下面的例子:WPF FindAncestor在結合
<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>
我使用上面的XAML來改變我的自定義擴展標題的文本。我的問題是,當我想要在綁定中使用祖先的屬性時,我實際上何時需要顯式使用FindAncestor?因爲以下三個綁定出現至少得在我的方案相同的結果:
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}"
我已經看到了很多的三個例子,它只是一個個人品味的問題?
不能相信我錯過了,謝謝。 – dbostream 2013-04-29 12:40:20