DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。
绑定到虚拟源的GridControl只请求顶级记录或特定页面,您可以指定支持哪些数据操作,以防止最终用户使用非最优查询使数据库过载,GridControl隐藏了不支持操作的UI元素。
注意 :不支持TreeListView。
排序
排序被禁用。
要启用排序:
-
使用FetchEventArgsBase.SortOrder属性获取考虑GridControl排序的行。
-
将ColumnBase.AllowSorting属性设置为true来允许按特定列排序(忽略DataViewBase.AllowSorting属性)。
您最初只能按单列排序,将GridViewBase.AllowGroupingSortingBySingleColumnOnly属性设置为false来允许按多列排序。
过滤
过滤功能被禁用。
要启用过滤功能:
-
使用FetchEventArgsBase.Filter属性获取考虑GridControl过滤的行。
-
使用以下属性来指定GridControl列支持的过滤器:
- ColumnBase.AllowedUnaryFilters:获取或设置GridControl列支持的一元过滤器。
- ColumnBase.AllowedBinaryFilters:获取或设置GridControl列支持的二进制过滤器。
- ColumnBase.AllowedAnyOfFilters:获取或设置GridControl列支持的任何过滤器。
- ColumnBase.AllowedDateTimeFilters:获取或设置GridControl列支持的日期-时间过滤器。
- ColumnBase.AllowedBetweenFilters:获取或设置GridControl列支持的过滤器之间的值。
- DataViewBase.AllowedGroupFilters:获取或设置GridControl支持的分组过滤器。
搜索
已禁用搜索。
请注意,虚拟源不支持使用搜索面板突出显示文本。该元素允许最终用户通过按F3或内置导航按钮在找到的值之间进行迭代,这可能导致在使用虚拟源时加载大量行。
总摘要
总摘要已被禁用。
要显示摘要:
-
处理InfiniteAsyncSource.GetTotalSummaries事件来获取总摘要。
-
使用GridControl.TotalSummary属性指定GridControl应该显示的摘要信息总数。
使用ColumnBase.AllowedTotalSummaries和TableView.AllowCountTotalSummary属性来指定允许的摘要类型,并允许用户显示摘要。
注意:不支持选择摘要。
数据编辑
"数据编辑"功能被禁用。
虚拟源仅支持在Edit Entire Row模式下进行编辑:
-
对于用户可以编辑的列,将ColumnBaseAllowEditing属性设置为true。
-
设置TableView.ShowUpdateRowButtons属性为OnCellEditorOpen / OnCellValueChange 来启用Edit Entire Row模式。
-
处理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);
});
}
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条件格式。
打印和导出
- 在PagedAsyncSource和PagedSource中,不支持打印和导出功能。
- 在InfiniteAsyncSource和InfiniteSource中,GridControl只打印和导出加载的行。在数据感知导出摘要是由Excel端加载的行计算的,并且可以不同于GridControl的值。
数据导航器
- 您可以在Data Navigator中使用导航按钮,Remove, Add, Edit按钮被禁用。
拖放
- 默认情况下,拖放功能是禁用的,您可以处理自定义事件来实现自定义拖放。
选择
- 在InfiniteAsyncSource和InfiniteSource中,DataControlBase.SelectAll方法被忽略,并且web样式的行选择功能不起作用。
- 在PagedAsyncSource和PagedSource中,DataControlBase.SelectAll方法只选择当前页面中的行。
自适应
- 在InfiniteAsyncSource和InfiniteSource中,BestFitMode.AllRows模式只适用于加载的行。
- 在PagedAsyncSource和PagedSource中,BestFitMode.AllRows 模式仅适用于当前页面的行。