После некоторых копаний и экспериментов я нашел обходной путь.Это не самая красивая, но она выполняет свою работу.Если у кого-нибудь есть предложения получше, я весь в ушах.Но вот что я придумала на тот случай, если кому-то еще это интересно.
Я использую события сетки 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
}