界面控件DevExpress WPF中文教程:Data Grid - 虚拟源限制

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

绑定到虚拟源的GridControl只请求顶级记录或特定页面,您可以指定支持哪些数据操作,以防止最终用户使用非最优查询使数据库过载,GridControl隐藏了不支持操作的UI元素。

注意不支持TreeListView。

获取DevExpress WPF v25.1正式版下载

排序

排序被禁用。

要启用排序:

  1. 使用FetchEventArgsBase.SortOrder属性获取考虑GridControl排序的行。

  2. ColumnBase.AllowSorting属性设置为true来允许按特定列排序(忽略DataViewBase.AllowSorting属性)。

您最初只能按单列排序,将GridViewBase.AllowGroupingSortingBySingleColumnOnly属性设置为false来允许按多列排序。

过滤

过滤功能被禁用。

要启用过滤功能:

  1. 使用FetchEventArgsBase.Filter属性获取考虑GridControl过滤的行。

  2. 使用以下属性来指定GridControl列支持的过滤器:

搜索

已禁用搜索。

请注意,虚拟源不支持使用搜索面板突出显示文本。该元素允许最终用户通过按F3或内置导航按钮在找到的值之间进行迭代,这可能导致在使用虚拟源时加载大量行。

总摘要

总摘要已被禁用。

要显示摘要:

  1. 处理InfiniteAsyncSource.GetTotalSummaries事件来获取总摘要。

  2. 使用GridControl.TotalSummary属性指定GridControl应该显示的摘要信息总数。

使用ColumnBase.AllowedTotalSummariesTableView.AllowCountTotalSummary属性来指定允许的摘要类型,并允许用户显示摘要。

注意:不支持选择摘要。

数据编辑

"数据编辑"功能被禁用。

虚拟源仅支持在Edit Entire Row模式下进行编辑:

  1. 对于用户可以编辑的列,将ColumnBaseAllowEditing属性设置为true。

  2. 设置TableView.ShowUpdateRowButtons属性为OnCellEditorOpen / OnCellValueChange 来启用Edit Entire Row模式。

  3. 处理GridViewBase.ValidateRow事件,并同步或异步地将更改保存到底层数据源(数据库)。

要异步保存更改,将GridRowValidationEventArgs.UpdateRowResult属性设置为保存更改的任务。

Xaml

XML 复制代码
<dxg:GridControl x:Name="grid">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Subject" IsSmart="True" AllowEditing="true"/>
<dxg:GridColumn FieldName="User" IsSmart="True" AllowEditing="true"/>
<dxg:GridColumn FieldName="Created" IsSmart="True" AllowEditing="true"/>
<dxg:GridColumn FieldName="Votes" IsSmart="True" AllowEditing="true"/>
<dxg:GridColumn FieldName="Priority" IsSmart="True" AllowEditing="true"/>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView ValidateRow="TableView_ValidateRow" ShowUpdateRowButtons="OnCellValueChange" />
</dxg:GridControl.View>
</dxg:GridControl>

C#

cs 复制代码
private void TableView_ValidateRow(object sender, GridRowValidationEventArgs e) {
e.UpdateRowResult = Task.Run(() => {
IssuesService.UpdateRow(e.Row as IssueData);
});
}

VB.NET

vbnet 复制代码
Private Sub TableView_ValidateRow(ByVal sender As Object, ByVal e As GridRowValidationEventArgs)
e.UpdateRowResult = Task.Run(Function()
IssuesService.UpdateRow(TryCast(e.Row, IssueData))
End Function)
End Sub
未绑定列和已绑定列
  • 您可以创建一个未绑定列,并使用表达式编辑器编辑ColumnBase.UnboundExpression属性。
  • 可以使用Binding属性创建绑定到数据的列。
  • 不能将数据整形操作(排序、分组、汇总)应用于未绑定列或指定了Binding属性的列。

如果必须在服务器上按多个列计算值,请使用VirtualSourceBase.CustomProperties属性指定自定义PropertyDescriptors。

条件格式
  • 只能使用FormatCondition条件格式。
打印和导出
数据导航器
  • 您可以在Data Navigator中使用导航按钮,Remove, Add, Edit按钮被禁用。
拖放
  • 默认情况下,拖放功能是禁用的,您可以处理自定义事件来实现自定义拖放。
选择
自适应
相关推荐
笺上知微5 小时前
基于HelixToolkit.SharpDX 渲染3D模型
wpf
武子康1 天前
大数据-264 实时数仓-MySQL Binlog配置详解:从原理到实践|数据恢复与主从复制实战
大数据·hadoop·后端
武子康1 天前
大数据-265 实时数仓-Canal MySQL Binlog配置详解:从原理到实践|数据恢复与主从复制实战
大数据·hadoop·后端
晓纪同学1 天前
WPF-03 第一个WPF程序
大数据·hadoop·wpf
光电大美美-见合八方中国芯2 天前
用于无色波分复用光网络的 10.7 Gb/s 反射式电吸收调制器与半导体光放大器单片集成
网络·后端·ai·云计算·wpf·信息与通信·模块测试
晓纪同学2 天前
WPF-02体系结构
wpf
晓纪同学2 天前
WPF-01概述
wpf
海盗12342 天前
OxyPlot 在 WPF 中的使用
.net·wpf
xiaoyaohou112 天前
024、大数据技术栈概览:Hadoop、Spark与Flink
大数据·hadoop·spark
晓纪同学2 天前
WPF-04 XAML概述
wpf