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>