我在 Datarid 的资源中定义了一个上下文菜单。在上下文菜单的 Click 事件中,我想检查父控件 (DataGrid) 的名称。我尝试了 VisualTreeHelper.GetParent() 和 LogicalTreeHelper.GetParent() 但都没有反映 xaml 中的层次结构。如何从 Click 事件中获取 DataGrid 控件?感谢您的回答。
代码:
private void datagridTargetDelete_Click(object sender, RoutedEventArgs e)
{
// Check the name of the DataGrid here...
}
XAML:
<DataGrid Name="datagridTarget">
<DataGrid.Resources>
<ContextMenu x:Key="DGTContextMenu">
<MenuItem Header="Delete" Click="datagridTargetDelete_Click">
<MenuItem.Icon>
<Image Height="16" Width="16" Source="{Binding ContextDeleteIcon}"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTemplateColumn Header="" Width="Auto" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image ContextMenu="{DynamicResource DGTContextMenu}" Height="16" Width="16" Source="{Binding ObjectImage}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>