如何在 DataGrid 控件上标记多项选择?

How to mark a multiple selection on a DataGrid control?

我有一个基于 Datagrid 的自定义控件。我想要实现的是对行进行多项选择,然后右键单击行选择器以打开上下文菜单。 实际发生了什么:在用户右键单击行选择器之前,多行的选择工作正常。完成后,只有一行被选中,即鼠标右键单击的那一行。

我需要做的事情:允许用户进行多项选择(行具有可供选择的样式)并右键单击以打开上下文菜单而不丢失先前的选择。

我需要做什么?

不,根本不会发生那样的事情。确保将 DataGridView MultiSelect 属性 设置为 TRUE。然后将您的 ContextMenustrip 控件分配给数据网格的 ContextMenuStrip 属性.

这应该可以完成工作,并且鼠标右键单击也应该保留多项选择,除非在您的代码后面某处您正在更改它。

在这种情况下,您将不得不调试并找出调试的位置和方式。

刚刚重新访问代码,发现我没有更新 SelectedItems IList:

            Dispatcher.BeginInvoke(new Action(delegate
            {
                foreach (var item in e.RemovedItems)
                {
                    SelectedItems.Add(item);
                }
                SelectedItemsList.Add(SelectedItem);
            }), System.Windows.Threading.DispatcherPriority.ContextIdle, null);