我有一个 datagrid ,其中 SelectionMode =“ single”,但是当我按'ctrl'并选择 selected 行,它变为 unselected 。有一种方法可以禁用“ ctrl”命令或使其在按下时不会 取消选择 所选行?
我正在使用 WPF 和 MVVM 模式。
我尝试过
PreviewMouseLeftButtonDown =“ DataGrid_PreviewMouseLeftButtonDown”
并像这样处理,但不起作用:
private void DataGrid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
e.handled = true;
}
`
答案 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;
}
我建议您仔细研究现有的问题和答案,并结合起来完成您想做的事情。