当前位置: 首页 > article >正文

DevExpress WPF中文教程:如何解决行焦点、选择的常见问题?

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

本文将帮助用户解决使用DevExpress WPF的网格控件时关于行聚焦和选择的常见问题。

获取DevExpress v24.1正式版下载(Q技术交流:532598169)

GridControl自动选择第一行

问题

DevExpress WPF GridControl在启动时自动聚焦第一行。

DevExpress WinForms中文教程图集

解决方案

禁用DataControlBase.AllowInitiallyFocusedRow属性,在这种情况下,DevExpress WPF GridControl在启动时不聚焦或不选择任何行。

DevExpress WinForms中文教程图集

注意:一旦最终用户聚焦一行,GridControl至少包含一个聚焦行。

用户无法聚焦GridControl中的任何行或单元格

问题

不能聚焦GridControl中的任何单元格或行。

解决方案

若要在GridControl中允许行和单元格焦点,请验证GridControl的DataViewBase.NavigationStyle属性是否设置为Cell。

GridControl在设置数据源后失去选择和焦点

问题

当GridControl的ItemsSource被重置时,GridControl会重新生成它的所有行。

解决方案

要在GridControl中保留选择、焦点、展开的主行和其他行设置,必须手动将这些设置保存到本地变量,您现在可以重置ItemsSource并手动恢复保存的值。

如果控件失去焦点,则焦点元素的背景颜色会改变

问题

当GridControl失去焦点时,所选行的颜色会逐渐消失。

DevExpress WinForms中文教程图集

解决方案

将视图的DataViewBase.FadeSelectionOnLostFocus属性设置为false。

DevExpress WinForms中文教程图集

条件格式不适用于聚焦行或单元格

问题

格式条件样式的优先级低于聚焦行背景颜色。

解决方案

要显示突出显示的单元格和行,处理TableView.CustomRowAppearance和TableView.CustomCellAppearance事件。

启用多重选择模式时,聚焦行不突出显示

问题

如果使用多行选择并在代码中设置DataControlBase.CurrentItem属性,则聚焦的行不会突出显示;只有虚线边框可见。

解决方案

启用多重选择后,DataControlBase.CurrentItem和DataControlBase.SelectedItem属性引用不同的项。DataControlBase.CurrentItem管理当前关注的项,而DataControlBase.SelectedItem用于被选中的对象,若要聚焦和突出显示一行,请指定这两个属性。

在代码后面设置当前项和当前列属性后,单元格编辑器不会出现

问题

在后面的代码中更改DataControlBase.CurrentItem和DataControlBase.CurrentColumn属性之后,您就不能打开被聚焦单元格的编辑器。如果目标行位于视窗之外,则可能发生这种情况。

解决方案

由于虚拟化机制,GridControl应该为目标数据行初始化相应的项。为了防止在打开单元格编辑器时出现问题,在更新DataControlBase.CurrentItem和DataControlBase.CurrentColumn属性后,使用BeginInvoke 方法调用DataViewBase.ShowEditor 方法。

C#

gridControl.CurrentItem = Items.First();
Dispatcher.BeginInvoke(new Action(() => {
tableView.ShowEditor(true);
}));
如何禁用单个行和单元格的选择

问题

您希望阻止选择某些行和单元格。

解决方案

处理以下事件:DataViewBase.CanSelectRow, TableView.CanSelectCell, DataViewBase.CanUnselectRow和TableView.CanUnselectCell。

将ViewModel属性绑定到选定项集合的问题

问题

将ViewModel属性绑定到GridControl的DataControlBase.SelectedItems属性,即使在用户选择行之后,该属性也返回null。

解决方案

确保用一个空集合初始化ViewModel的属性,GridControl将选定的项添加到现有集合中,它不会在每次选择更改时创建新集合。

在触控设备上不能选择多行

问题

用户只能在Ctrl或Shift键的帮助下选择行,它们无法仅通过触摸手势选择多行。

DevExpress WinForms中文教程图集

解决方案

要启用对触摸友好的多行选择,将DataControlBase.SelectionMode属性设置为MultiSelectMode.MultipleRow。

DevExpress WinForms中文教程图集

如何禁用多行或单元格选择

问题

如果DataControlBase.SelectionMode 属性设置为行或单元格,则启用多选择。

解决方案

如果不启用多选功能,请将DataControlBase.SelectionMode设置为None。

GridControl失去键盘焦点

问题

GridControl在其单元格编辑器关闭时失去键盘焦点,如果GridControl位于容器(如ScrollViewer)内,则可能发生此问题,容器控件可以窃取键盘焦点。

解决方案

禁用容器的Focusable 属性。


http://www.kler.cn/a/320321.html

相关文章:

  • 机器学习头歌(第三部分-强化学习)
  • 《机器学习》——贝叶斯算法
  • 优先级队列(算法十四)
  • 【端云一体化】云函数的使用
  • linux自动分区后devmappercentos-home删除后合并到其它分区上
  • Leetcode - 周赛431
  • Redis 列表(List)
  • Linux宇宙-1
  • FortiGate OSPF动态路由协议配置
  • 进阶美颜功能技术开发方案:探索视频美颜SDK
  • 计算机视觉中的几何基元:用Python揭开图像的秘密
  • 【Midjourney】如何使用Midjourney生成惊艳的艺术作品:从提示词到完美图像的全攻略
  • 三维手势 handpose 3D RGB 手势3D建模 三维建模-手势舞 >> DataBall
  • 1.pytest基础知识(默认的测试用例的规则以及基础应用)
  • Renesas R7FA8D1BH (Cortex®-M85)的UART使用介绍
  • JavaWeb - 7 - SpringBootWeb入门
  • Oracle(136)什么是UNDO表空间?
  • 汽车总线之---- CAN FD总线
  • Greedy_approach贪心算法
  • MATLAB中多张fig图合并为一个图
  • 国产操作系统(统信UOS)网络安全等级保护基础安全加固
  • 9.25盒马鲜生一面
  • 打卡软件——人脸识别综合实现Pro
  • Remotion:使用前端技术开发视频
  • ES6的简单介绍(第三部分)
  • AR传送门+特定区域显示内容+放大镜 效果着色器使用