我在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>
謝謝,這個伎倆。 – SwissEngineer