界面控件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按钮被禁用。
拖放
  • 默认情况下,拖放功能是禁用的,您可以处理自定义事件来实现自定义拖放。
选择
自适应
相关推荐
500845 分钟前
把 FlashAttention 讲清楚
flutter·electron·wpf
500846 小时前
ATC 做了什么:从 ONNX 到 .om
分布式·架构·开源·wpf·开源鸿蒙
500848 小时前
Graph Engine 是什么,为什么需要它
java·人工智能·性能优化·ocr·wpf
一念春风11 小时前
.md文件浏览器
c#·wpf
阿坤带你走近大数据11 小时前
Hadoop中的MapReduce介绍
大数据·hadoop·mapreduce
lingxiao1688811 小时前
Wpf常用样式与自定义控件(仪表盘,管道,分页器等)
wpf
LateFrames1 天前
520 - 如何说晚安 (WPF)
c#·wpf·浪漫·ui体验
heimeiyingwang1 天前
【架构实战】日志体系ELK:集中化日志管理实践
elk·架构·wpf
CPU不够了1 天前
WPF 多选下拉+搜索过滤_wpf下拉选项增加搜索
wpf
FuckPatience1 天前
WPF 列表控件自动拉伸子元素的宽度
wpf