events - Infragistics UltraGrid 组更改事件
问题描述
我有一个 Infragistics UltraGrid,我需要知道用户何时添加/删除列分组。我看到当行折叠/展开时有事件,当网格的过滤器更改时有事件,但我没有看到在添加/删除列分组时会触发的任何事件。有谁知道此时会触发的 UltraGrid 事件?如果没有,是否有任何解决方法可以用来实现这一目标?
我已经尝试过使用 AfterBandHiddenChanged 和 AfterGroupPosChanged。这些似乎都没有做我需要的。
我正在使用 Infragistics 11.2 CLR2.0(我知道它已经过时了,但我不想更新它)
解决方案
经过一番挖掘和试验,我找到了一种解决方法。这不是最漂亮的,但它完成了工作。如果有人有更好的建议,我会全力以赴。但这是我想出的,以防其他人感兴趣。
我利用网格BeforeSortChanged
和AfterSortChanged
事件。“之前”事件设置一个标志以指示分组是否已更改。如果标志设置为指示分组已更改,则“之后”事件是我执行我需要执行的操作的地方。
这是“之前”事件:
private void Grid_BeforeSortChange(object sender, Infragistics.Win.UltraWinGrid.BeforeSortChangeEventArgs e) {
int preSort = 0;
int postSort = 0;
// This set of sorted columns are the columns that were already sorted
// before the sort change.
foreach (var col in e.Band.SortedColumns) {
if (col.IsGroupByColumn) {
preSort++;
}
}
// This set of sorted columns are the columns that will be
// sorted after the sort change is applied
foreach (var col in e.SortedColumns) {
if (col.IsGroupByColumn) {
postSort++;
}
}
// Compare the number of grouped columns before the
// sort to the number after the sort
_groupingsChangedFlag = preSort != postSort
}
这是“之后”事件:
private void Grid_AfterSortChange(object sender, Infragistics.Win.UltraWinGrid.BandEventArgs e) {
if (!_groupingsChangedFlag) {
return;
}
// Groupings changed, so do some action
}
推荐阅读
- sql - VSTS-Build for SQL Server 项目不起作用
- android - Retrofit/GSON 没有解析我的 JSON 对象数组
- python - 如何在 Windows 机器中使用 python 删除文件夹和子文件夹中的文件?
- html - 如何仅使用 css 更改 html 元素的位置?
- php - 按相同的字符串名称和索引位置排序
- typescript - 用于提取函数参数类型的条件类型
- python-3.x - df.mean() / jupyter / pandas 交替轴输出
- node.js - 无法从本地主机 ping 容器内正在运行的服务器
- kubernetes - 多个项目的共享 kubernetes 集群的配置
- xbee - 无法在 Xbee 中从 AT 模式更改为 API