如何在按钮中设置Ancesstor以及该目的是什么?

时间:2017-06-20 06:15:19

标签: wpf

我将模式FindAncestor和Ancestor Type设置为X:键入DataGrid并将ClickCommand设置为path.Now,我的问题是为什么设置FindAncestor和AncestorType按钮命令中的实际行为是什么。      

由于

1 个答案:

答案 0 :(得分:0)

FindAncestor and `AncestorType`

特别是在出于某种原因使用时,您无法使用您的控件访问窗口的datacontext。

以此为例:

 <DataTemplate DataType="DataGridColumnHeader"  >
        <ComboBox ItemContainerStyle="{StaticResource SingleSelectionComboBoxItem}" DisplayMemberPath="Oggetto" Width="100" Height="20" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}},Path=DataContext.Selezione, UpdateSourceTrigger=LostFocus}"  SelectionChanged="SingleSelectionComboBox_SelectionChanged"/>
 </DataTemplate>

DataGridHeader不继承datagrid的datacontext,因此我不得不使用该sintaxt从祖先获取datacontext并设置itemsource