TcxGrid中Web风格行选择复选框无触发事件,如何实现选中计数显示?
解决DevExpress QuantumGrid复选框选中/取消时更新选中计数的问题
环境:Delphi 10.3 Rio、DevExpress QuantumGrid 19.1.2
你已经配置了网格的复选框选择功能,但找不到合适的事件触发选中计数更新——直接用DataController的OnSelectionChanged事件就能完美解决,不管是单个行勾选、表头全选/取消,还是组行勾选同步子行,只要选择状态变化,这个事件就会触发。
实现步骤:
- 给目标GridView的DataController绑定
OnSelectionChanged事件(可以在设计时通过属性面板设置,也能代码动态绑定) - 在事件处理函数里执行你的计数更新逻辑
代码示例:
动态绑定事件的代码:
AView.DataController.OnSelectionChanged := cxGridSelectionChanged;
事件处理过程实现:
procedure TYourForm.cxGridSelectionChanged(Sender: TObject); var SelectedCount, TotalCount: Integer; AController: TcxDataController; begin AController := TcxDataController(Sender); SelectedCount := AController.GetSelectedCount; TotalCount := AController.RecordCount; Label1.Caption := Format('selected = %d of %d', [SelectedCount, TotalCount]); end;
补充说明:
- 这个事件覆盖所有选择变更场景:鼠标点击复选框、键盘操作切换选中状态、代码修改选中集合,全部能触发
- 你配置的
dcoMultiSelectionSyncGroupWithChildren选项生效时,组行勾选同步子行的操作也会触发该事件,计数会自动包含所有同步选中的子行,不需要额外处理
内容的提问来源于stack exchange,提问作者Yako
相关产品推荐
相关产品推荐

