如何在数据网格中禁用取消选择

时间:2018-11-08 14:32:55

标签: c# wpf xaml mvvm datagrid

我有一个 datagrid ,其中 SelectionMode =“ single”,但是当我按'ctrl'并选择 selected 行,它变为 unselected 。有一种方法可以禁用“ ctrl”命令或使其在按下时不会 取消选择 所选行?

我正在使用 WPF MVVM 模式。

我尝试过

  

PreviewMouseLeftButtonDown =“ DataGrid_PreviewMouseLeftButtonDown”

并像这样处理,但不起作用:

private void DataGrid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {

 e.handled = true;

    }

`

1 个答案:

答案 0 :(得分:1)

answer on here建议您将Handled设置为true还不止于此。另外,this可能会有所帮助。

两者合并后的结果看起来像这样:

void DataGridPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;

    var result = VisualTreeHelper.HitTest(gd, e.GetPosition(gd));
    var row = DependencyObjectHelper.FindAncestor<DataGridRow>(result.VisualHit);
    if (row != null && !row.IsSelected)
        row.IsSelected = true;
}

我建议您仔细研究现有的问题和答案,并结合起来完成您想做的事情。