【问题标题】:How to disable unselection in datagrid如何在数据网格中禁用取消选择
【发布时间】:2018-11-08 14:32:54
【问题描述】:
我有一个 datagrid 与 SelectionMode = "single" ,但是当我按 'ctrl' 并选择 selected 行,它变成了unselected。有一种方法可以禁用“ctrl”命令或使其在按下时不会取消选择选定的行?
我正在使用 WPF 和 MVVM 模式。
我试过了
PreviewMouseLeftButtonDown="DataGrid_PreviewMouseLeftButtonDown"
并像这样处理它但没有用:
private void DataGrid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
e.handled = true;
}
`
【问题讨论】:
标签:
c#
wpf
xaml
mvvm
datagrid
【解决方案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;
}
我建议您仔细研究现有的问题和答案,并将它们结合起来完成您想做的事情。