问题: 当右键单击一行时,我试图在 DataGrid 上创建一个菜单。
目标: 是否可以在右键单击一行时在 DataGrid 上创建菜单;我可以在一个单元格上创建一个吗?
<controls:DataGridTemplateColumn Header="OrderId">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ContextFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="Copy" Icon="Copy" Click="MenuFlyoutItem_Copy" />
<MenuFlyoutSeparator />
<MenuFlyoutItem Text="Delete" Icon="Delete" Click="MenuFlyoutItem_Delete" />
</MenuFlyout>
</Grid.ContextFlyout>
<TextBlock Text="{Binding OrderId}" />
</Grid>
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
private void MenuFlyoutItem_Copy(object sender, RoutedEventArgs e)
{
ObservableCollection<SampleOrder> dataGrid = DataGrid.ItemsSource as ObservableCollection<SampleOrder>;
MenuFlyoutItem mfi = sender as MenuFlyoutItem;
SampleOrder seleted = mfi.DataContext as SampleOrder;
var copiedItem = (SampleOrder)seleted.Clone();
dataGrid.Add(copiedItem);
}
private void MenuFlyoutItem_Delete(object sender, RoutedEventArgs e)
{
ObservableCollection<SampleOrder> dataGrid = DataGrid.ItemsSource as …Run Code Online (Sandbox Code Playgroud)