如何动态(硬编码)上下文菜单



我正在尝试动态(硬编码(.cs文件中的上下文菜单,而不是在我的 .xaml 文件中定义它。

到目前为止,我已经在文件中定义了数据网格.cs如下所示:

DataGrid dgCM = new DataGrid();
dgCM.Style = (Style)FindResource("DgCustomStyle");
dgCM.ItemsSource = MainWindow.m_DtTagList.DefaultView;

dgCM.GridLinesVisibility = DataGridGridLinesVisibility.All;
dgCM.VerticalGridLinesBrush = Brushes.Black;
dgCM.AutoGenerateColumns = true;
dgCM.CanUserAddRows = true;
dgCM.CanUserDeleteRows = true;
dgCM.IsReadOnly = false;

dgCM.SelectionMode = DataGridSelectionMode.Extended;
dgCM.SelectionUnit = DataGridSelectionUnit.FullRow;

dgCM.MouseDoubleClick += DgCM_Row_DoubleClick;
dgCM.Margin = new Thickness(0, 10, 0, 0);

现在我的目标是以类似的方式定义上下文菜单,因为它有 3 个选项,当我右键单击时复制、粘贴和删除。 有人可以建议我一个解决方案吗? 期待您的回复。 谢谢

您可以通过添加以下代码来执行此操作:

MenuItem copy = new MenuItem() { Header = "_Copy" };
copy.Click += (s, e) => 
{ 
// Do something 
};
MenuItem paste = new MenuItem() { Header = "_Paste" };
paste.Click += (s, e) => 
{ 
// Do something 
};
MenuItem cut = new MenuItem() { Header = "_Cut" };
cut.Click += (s, e) =>
{
// Do something 
};
dgCM.ContextMenu = new ContextMenu();
dgCM.ContextMenu.Items.Add(copy);
dgCM.ContextMenu.Items.Add(paste);
dgCM.ContextMenu.Items.Add(cut);

最新更新