c# - 如何在数据网格中禁用取消选择
问题描述
我有一个带有SelectionMode = "single" 的数据网格,但是当我按 'ctrl' 并选择选定的行时,它变成了未选中的。有一种方法可以禁用“ctrl”命令或使其在按下时不会取消选择选定的行?
我正在使用WPF和MVVM模式。
我试过了
PreviewMouseLeftButtonDown="DataGrid_PreviewMouseLeftButtonDown"
并像这样处理它但没有用:
private void DataGrid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
e.handled = true;
}
`
解决方案
这里的答案表明,不仅仅是设置Handled
为真。这也可能会有所帮助。
两者结合的结果可能如下所示:
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;
}
我建议您仔细研究现有的问题和答案,并将它们结合起来完成您想做的事情。
推荐阅读
- wpf - 如何将 WPF 应用程序集成到 Unity3D 项目中?
- javascript - ReactJS:使用 onClick 和 state 来显示元素的子集
- json - VB.NET HTTP Json 响应解码
- mongodb - 如何将 android 设备而不是 AVD 与数据库连接
- c# - csharp中emgucv的全局阈值
- python - SecurityError: Permission denied to access property "document" on cross-origin object error click on download link in iframe using Selenium Python
- php - 与 Laravel 和 Slider Revolution 中的变量“标题”冲突
- ios - 从表格视图中的重复文本字段中保存用户输入?
- python - 给定一列熊猫列表,如何为每个元素创建列
- html - 图像未在锚标记内居中