【问题标题】:Infragistics UltraGrid Group Changed EventInfragistics UltraGrid 组更改事件
【发布时间】:2019-02-01 17:09:49
【问题描述】:

我有一个 Infragistics UltraGrid,我需要知道用户何时添加/删除列分组。我看到当行折叠/展开时有事件,当网格的过滤器更改时有事件,但我没有看到在添加/删除列分组时会触发的任何事件。有谁知道此时会触发的 UltraGrid 事件?如果没有,我是否可以使用任何解决方法来实现此目的?

我已经尝试过使用 AfterBandHiddenChanged 和 AfterGroupPosChanged。这些似乎都不能满足我的需要。

我正在使用 Infragistics 11.2 CLR2.0(我知道它已经过时了,但我不想更新它)

【问题讨论】:

    标签: events infragistics ultrawingrid


    【解决方案1】:

    经过一番挖掘和试验,我找到了一种解决方法。这不是最漂亮的,但它完成了工作。如果有人有更好的建议,我会全力以赴。但这是我想出的,以防其他人感兴趣。

    我利用网格的BeforeSortChangedAfterSortChanged 事件。 “之前”事件设置一个标志以指示分组是否已更改。如果标志设置为指示分组已更改,则“After”事件是我执行我需要执行的操作的地方。

    这里是“之前”事件:

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 2011-08-03
      相关资源
      最近更新 更多