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

DevExpress WPF中文教程:如何解决编辑单元格值的常见问题?

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

本文列举了最常见的单元格编辑问题列表,并介绍如何解决这些问题。

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

整个视图、某些列或某些单元格是只读的

问题

不能在整个视图、某些列或某些单元格中编辑单元格数据。

解决方案

检查是否满足以下条件:

  • 列绑定到数据源字段,使用ColumnBase.FieldName或ColumnBase.Binding将列绑定到数据源属性。
  • 数据源属性有一个公共设置器。
  • 如果您设置一个列的ColumnBase.Binding属性,绑定的模式应该是双向的:

XAML

<dxg:GridColumn Header="Id" FieldName="col1" Binding="{Binding Path=Id, Mode=TwoWay}"/>
  • 如果您设置了一个列的绑定属性,ColumnBase.FieldName不应该使用现有的属性名。请参阅下面的“INCORRECT” 和 “CORRECT”示例。

XAML

<!--INCORRECT-->
<dxg:GridColumn Header="Id" FieldName="Id" Binding="{Binding Path=Id, Mode=TwoWay}"/>
<!--CORRECT-->
<dxg:GridColumn Header="Id" FieldName="col1" Binding="{Binding Path=Id, Mode=TwoWay}"/>
<!--CORRECT-->
<dxg:GridColumn Header="Id" Binding="{Binding Path=Id, Mode=TwoWay}"/>
  • 确保您没有更改设置或编写禁用数据编辑功能的代码。
  • 如果您在服务器模式下使用GridControl,请注意以下服务器模式数据源最初是只读的:WcfInstantFeedbackSource, EntityServerModeDataSource 和 LinqServerModeDataSource。
  • 在v20.1及更高版本中,虚拟源组件支持数据编辑。
网格控件不为集合属性创建列,或者这些列是只读的

问题

DevExpress WPF GridControl不为集合属性生成列,这些属性通常用于填充详细网格控件。

可以手动将列绑定到集合属性,但是您需要采取额外的步骤来启用数据编辑。

解决方案

使用以下解决方案当中的一个:

  • 使用ColumnBase.Binding属性将列绑定到集合属性。
  • 使用支持多重选择的Editors.BaseEdit后代,示例包括ComboBoxEdit, LookUpEdit 和 ListBoxEdit,用EditSettings或ColumnBase.CellTemplate.定义它们。

注意:ColumnBase.FieldName只能对Object类型进行操作,将数据项中的List<T>更改为Object。如果属性是List<Object>,则使用ColumnBase.Binding属性。对于其他集合类型(如List<string>),请使用带有ColumnBase.Binding属性的自定义转换器来转换集合对象。

  • 用自定义编辑器实现ColumnBase.CellTemplate,在这种情况下,我们不建议使用非DevExpress编辑器。
单元格值在编辑和显示模式下不同

问题

DevExpress WPF GridControl中的单元格在编辑和显示模式下显示不同的值。

解决方案

请参阅表格中“Format Cell Values”帮助主题中的“编辑模式下的作品”列。

单元格是空的

问题

DevExpress WPF GridControl中的单元格不显示任何值,下图显示了一个常见的场景,您在单元格中看到编辑器边框,但没有内容。

DevExpress WinForms中文教程图集

解决方案

使用以下解决方案当中的一个:

  • 如果在编辑器中使用ColumnBase.CellTemplate,请确保将其名称设置为PART_Editor。在这种情况下,GridControl会自动调整其外观,并将编辑器与ColumnBase.FieldName或ColumnBase.Binding属性指定的源字段同步。
  • 确保列具有正确的ColumnBase.FieldName属性,您可以使用Snoop或类似的工具来分析应用程序的可视化树,下面的视频展示了Snoop的实际操作。

DevExpress WinForms中文教程图集

  • 如果您在GridControl中使用ComboBoxEdit或LookUpEdit作为就地编辑器,请确保正确指定了LookUpEditBase.ValueMember和LookUpEditBase.DisplayMember属性。
  • 如果为列/单元格指定了自己的就地编辑器,请检查应用程序是否在Visual Studio的Output窗口中报告任何绑定错误。如果看到错误,修复绑定路径。
  • 如果使用未绑定列,请确保正确处理CustomUnboundColumnData事件或指定ColumnBase.UnboundExpression属性。要检查当前单元格值,请在CustomUnboundColumnData事件的事件处理程序中设置一个断点。要检查ColumnBase.UnboundExpression属性的当前值,请使用Snoop工具。

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

相关文章:

  • JMeter与大模型融合应用之JMeter日志分析服务化实战应用
  • SpringSecurity 鉴权认证入门讲解
  • The 3rd Universal CupStage 15: Chengdu, November 2-3, 2024(2024ICPC 成都)
  • 计算机网络 (4)计算机网络体系结构
  • 视频编码基础入门
  • 【CICD】CICD 持续集成与持续交付在测试中的应用
  • 1.6 物理层
  • 每天学习一个技术栈 ——【Django Channels】篇(1)
  • 《深度学习》—— 神经网络中的数据增强
  • PHP中如何使用三元条件运算符
  • 智能PPT行业赋能用户画像
  • Kafka系列之:安装部署CMAK,CMAK管理大型Kafka集群参数调优
  • 实现org.springframework.beans.factory.InitializingBean 接口--初始化bean
  • 渲染太慢?Maya云渲染教程
  • 转行大模型的必要性与未来前景:迎接智能时代的浪潮
  • 阅读CVPR论文——mPLUG-Owl2:革命性的多模态大语言模型与模态协作
  • 复杂网络(Complex Network)社团数据可视化分析(gephi)实验
  • 初识爬虫8
  • SwiftUI疑难杂症(1):sheet content多次执行
  • 在Java中,关于final、static关键字与方法的重写和继承【易错点】
  • io流(学习笔记01)--File知识点
  • Qt常用快捷键
  • 数据结构:串 及串的模式匹配(KMP)
  • 视觉无障碍 | 成都爱尔眼科公益助力重获清晰便利独居人生
  • 阿里rtc旁路推流TypeScript版NODE运行
  • 从入门到精通:计算机视觉学习路线与实战项目推荐