wpf devexpress绑定grid到总计和分组统计
此主题描述了如何在gridcontrol中的视图模型和显示定义总计和分组统计

在视图模型中指定统计
1、创建 SummaryItemType 枚举你想要在GridControl中显示的统计类型:
public enum SummaryItemType { Max, Count, None }
2、创建一个grid统计描述类
public class Summary : BindableBase {public Summary(SummaryItemType type, string fieldname) {Type = type;FieldName = fieldname;}public SummaryItemType Type { get; }public string FieldName { get; }
}
3、在视图模型中指定合计和分组统计集合
public class CustomersViewModel : ViewModelBase {public CustomersViewModel() {// ...TotalSummary = new ObservableCollection<Summary>() {new Summary(SummaryItemType.Count, nameof(Customer.Name)),new Summary(SummaryItemType.Max, nameof(Customer.Visits))};GroupSummary = new ObservableCollection<Summary>() {new Summary(SummaryItemType.Count, nameof(Customer.Name))};}// ...public ObservableCollection<Summary> TotalSummary { get; }public ObservableCollection<Summary> GroupSummary { get; }
}
如果你需要GridControl引用在TotalSummary和GroupSummary集合中的改变,这些集合必须实现INotifyCollectionChanged 接口
创建统计模板
1、指定一个统计类型(Min,Max,Count),设置SummaryItemBase.SummaryType属性到SummaryItemType枚举值。创建ObjectToObjectConverter来映射SummaryItemType枚举值到SummaryItemType枚举值:
<Window ... xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"><Window.Resources><dxmvvm:ObjectToObjectConverter x:Key="SummaryTypeConverter"><dxmvvm:MapItem Source="Max" Target="Max" /><dxmvvm:MapItem Source="Count" Target="Count" /><dxmvvm:MapItem Source="None" Target="None" /></dxmvvm:ObjectToObjectConverter></Window.Resources><!-- ... -->
</Window>
2、创建一个模板生成统计
使用SummaryTypeConverter去指定Converter参数对于SummaryItemBase.SummaryType属性
使用DependencyObjectExtensions.DataContext附加属性当你绑定到GridControl统计属性。这个附加的属性同步数据更新束缚属性提高grid性能:
<Window.Resources><DataTemplate x:Key="SummaryTemplate"><ContentControl><dxg:GridSummaryItem FieldName="{Binding Path=(dxci:DependencyObjectExtensions.DataContext).FieldName, RelativeSource={RelativeSource Self}}"SummaryType="{Binding Path=(dxci:DependencyObjectExtensions.DataContext).Type, RelativeSource={RelativeSource Self}, Converter={StaticResource SummaryTypeConverter}}"/></ContentControl></DataTemplate>
</Window.Resources>
在GridControl中显示视图模型统计
1、绑定TotalSummarySource和GroupSummarySource属性到总计和分组统计集合
2、设置TotalSummaryGeneratorTemplate和GroupSummaryGeneratorTemplate属性到模板生成统计
3、设置DataViewBase.TotalSummaryPosition属性到Top和Bottom显示Total Summary Panel
<dxg:GridControl ...TotalSummarySource="{Binding TotalSummary}"GroupSummarySource="{Binding GroupSummary}"TotalSummaryGeneratorTemplate="{StaticResource SummaryTemplate}"GroupSummaryGeneratorTemplate="{StaticResource SummaryTemplate}"><dxg:GridControl.View><dxg:TableView TotalSummaryPosition="Bottom"/></dxg:GridControl.View>
</dxg:GridControl>
相关文章:
wpf devexpress绑定grid到总计和分组统计
此主题描述了如何在gridcontrol中的视图模型和显示定义总计和分组统计 在视图模型中指定统计 1、创建 SummaryItemType 枚举你想要在GridControl中显示的统计类型: public enum SummaryItemType { Max, Count, None } 2、创建一个grid统计描述类 public class S…...
嵌入式 Linux 移植与系统启动方法
1、Linux系统启动与U-Boot 所谓移植就是把程序代码从一种运行环境转移到另一种运行环境。对于内核移植来说,主要是从一种硬件平台转移到另一种硬件平台上运行。 体系结构级别的移植是指在不同体系结构平台上Linux内核的移植,例如,在ARM、MI…...
代码随想录算法训练营|五十六天
回文子串 647. 回文子串 - 力扣(LeetCode) dp含义:表示区间内[i,j]是否有回文子串,有true,没有false。 递推公式:当s[i]和s[j]不相等,false;相等时,情况一,…...
基于django水果蔬菜生鲜销售系统
基于django水果蔬菜生鲜销售系统 摘要 基于Django的水果蔬菜生鲜销售系统是一种利用Django框架开发的电子商务平台,旨在提供高效、便捷的购物体验,同时支持水果蔬菜生鲜产品的在线销售。该系统整合了用户管理、产品管理、购物车、订单管理等核心功能&…...
【数据结构】快速排序算法你会写几种?
👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…...
C#访问修饰符
C#中的访问修饰符用于控制类型成员(如字段、属性、方法等)的访问级别。以下是C#中常用的访问修饰符: public:公共访问级别,没有任何访问限制。在任何其他类或程序集中都可以访问标记为 public 的成员。 private&#…...
anaconda中安装pytorch和TensorFlow环境并在不同环境中安装kernel
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
记一次解决Pyqt6/Pyside6添加QTreeView或QTreeWidget导致窗口卡死(未响应)的新路历程,打死我都想不到是这个原因
文章目录 💢 问题 💢🏡 环境 🏡📄 代码💯 解决方案 💯⚓️ 相关链接 ⚓️💢 问题 💢 我在窗口中添加了一个 QTreeWidget控件 ,但是程序在运行期间,只要鼠标进入到 QTreeWidget控件 内进行操作,时间超过几秒中就会出现窗口 未响应卡死的 状态 🏡 环境 �…...
用照片预测人的年龄【图像回归】
在图像分类任务中,卷积神经网络 (CNN) 是非常强大的神经网络架构。 然而,鲜为人知的是,它们同样能够执行图像回归任务。 图像分类和图像回归任务之间的基本区别在于分类任务中的目标变量(我们试图预测的东西)不是连续…...
Fork项目新分支如何同步
这里以seata项目为示例: 一、添加Fork仓库的源仓库 git remote add seata gitgithub.com:seata/seata.git二、fetch git fetch seata...
Linux 常用压缩格式
Linux 常用压缩格式简介 Linux系统用户可以根据自己的需求选择合适的压缩工具来进行文件压缩和解压操作。Linux系统中常用的压缩软件都有相应的命令行工具,并且可以通过软件包管理器进行安装。主要有gzip、bzip2、zip、tar、7z。 gzip:gzip是一个广泛使…...
高效背单词——单词APP安利
大英赛,CET四六级,以及考研英语,都在不远的未来再度来临,年复一年的考试不曾停息,想要取得好成绩,需要我们的重视并赋予相应的努力。对于应试英语,词汇量是不可忽略的硬性要求。相比于传统默写&…...
力扣 字母异位词分组 哈表 集合
👨🏫 力扣 字母异位词分组 ⭐ 思路 由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。 🍑 AC code class Solut…...
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ MySQL存储过程 1. 介绍2. 使用3. 变量①系统变…...
使用SpringBoot进行游戏服务器开发
背景: 之前一直只考虑用JavaSe进行游戏服务器开发,目前项目使用了Spring,发现还是非常好的,好处如下: 好处1:依赖注入非常方便,我们只使用Spring最基本的功能即可,这样子就算是有一些模块不使用Spring管理…...
数据结构——树状数组
文章目录 前言问题引入问题分析树状数组lowbit树状数组特性初始化一个树状数组更新操作前缀和计算区间查询 总结 前言 原题的连接 最近刷leetcode的每日一题的时候,遇到了一个区间查询的问题,使用了一种特殊的数据结构树状数组,学习完之后我…...
Untiy 使用RotateAround()方法实现物体围绕某个点或者某个物体旋转
Untiy 实现物体围绕指定点或者某个物体旋转,可使用RotateAround()方法。 语法: public void RotateAround(Vector3 point, Vector3 axis, float angle); 其中,point:旋转中心点位置; axis:要围绕的轴,如x,y,z angel…...
图像分类(五) 全面解读复现ResNet
解读 Abstract—摘要 翻译 更深的神经网络往往更难以训练,我们在此提出一个残差学习的框架,以减轻网络的训练负担,这是个比以往的网络要深的多的网络。我们明确地将层作为输入学习残差函数,而不是学习未知的函数。我们提供了非…...
使用html2canvas转换table为图片时合并单元格rowspan失效,无边框显示问题解决(React实现)
最近使用 html2canvas导出Table表单为图片,但是转换出的图片被合并的单元格没有显示边框 查了原因是因为我为tr设置了背景色,然后td设置了rowspan,设置了rowspan的单元格就会出现边框不显示的问题。 解决方法就是取消tr的背景色,然…...
pandas教程:Time Series Basics 时间序列基础
文章目录 11.2 Time Series Basics(时间序列基础)1 Indexing, Selection, Subsetting(索引,选择,取子集)2 Time Series with Duplicate Indices(重复索引的时间序列) 11.2 Time Seri…...
佳维视工业嵌入式显示器在全电脑络筒机中的应用
佳维视工业嵌入式显示器凭借其高可靠性、环境适应性和功能集成性,可在全电脑络筒机的纱线张力控制、清纱监测、自动化操作、数据集成及远程运维等核心环节发挥关键作用,有效提升设备运行的稳定性、纱线加工质量及生产效率。具体应用如下:一、…...
奥尔特云智慧武装系统上线!基层武装管理从此“智”在必得!
随着国防动员与基层武装工作不断升级,传统管理模式存在信息化覆盖不全、数据归集粗放、智能化水平不足等问题,已难以适配高效管理与应急应战需求,数字化转型成为必然趋势。智慧武装系统是奥尔特云(深圳)智慧科技打造的…...
2023年最新YOLO模型对比:YOLOv7 vs YOLOX vs YOLOv5,哪个更适合你的项目?
2023年YOLO模型实战选型指南:从原理到落地的深度对比 在计算机视觉领域,目标检测一直是核心任务之一,而YOLO(You Only Look Once)系列作为其中的佼佼者,凭借其出色的实时性能赢得了广泛关注。2023年,随着YOLOv7的发布&…...
OpenCascade实战:TopoDS_Shape数据结构的高效遍历与优化策略
1. TopoDS_Shape数据结构基础解析 在OpenCascade中,TopoDS_Shape是构建三维模型的基石。这个看似简单的类实际上包含了三个关键数据成员:myTShape、myLocation和myOrient。理解这三个字段的运作机制,是高效操作模型的前提。 myTShape是一个智…...
基于七自由度车辆模型的 UKF 与 EKF 参数估计之旅
基于七自由度车辆模型的UKF,EFK对质心侧偏角,横摆角速度,纵向车速的估计。 七自由度车辆动力学模型 UKF无迹卡尔曼滤波 EKF扩展卡尔曼滤波 质心侧偏角 横摆角速度 纵向车速 参数估计 提供参考文献pdf 车辆模型建模word文档 UKF学习文档等在车…...
大学物理电磁场公式
1,毕奥-萨伐尔定律 2,安培定律(电流连续性) 3,库伦定律 如果两个电荷电量为q1和q2,距离为r,它们受到相互间作用力F 同种电荷互相吸引,不同电荷相互排斥; 电荷作用力大小与电荷大小成正比,与距离平方成反比; 作用力方向与电荷连线方向相反或一致 4,法拉第定律 5…...
wordpress数据迁移---没有验证
迁移 WordPress 完整数据(文章、页面、媒体、主题、插件、设置、评论、用户),核心是 备份旧站文件 数据库 → 新服务器配置环境 → 上传文件 导入数据库 → 修改配置 替换域名 / URL → 测试。下面分 插件一键迁移(新手推荐&am…...
PCB开窗技术:提升电流承载能力的关键工艺
1. PCB开窗技术解析:从概念到应用在PCB设计领域,"开窗"这个术语经常被经验丰富的工程师挂在嘴边,但对于刚入行的新手来说,这个看似简单的操作背后却蕴含着不少设计门道。作为一名有十年硬件设计经验的工程师,…...
MPU9250 I²C驱动库深度解析与嵌入式工程实践
1. MPU9250 IC驱动库技术解析与工程实践指南 MPU9250是InvenSense(现为TDK子公司)推出的高性能9轴运动传感器,集成3轴陀螺仪、3轴加速度计和3轴磁力计,广泛应用于无人机姿态解算、可穿戴设备运动追踪、机器人SLAM前端感知等嵌入式…...
从仿真到上板:手把手教你用Vivado搭建一个“永不停机”的FFT信号处理链路(附Testbench)
从仿真到上板:构建高可靠FFT信号处理系统的全流程实战 在数字信号处理领域,快速傅里叶变换(FFT)作为频谱分析的核心算法,其硬件实现一直是FPGA工程师的必备技能。本文将带您从仿真环境搭建开始,逐步完成一…...
