Добавление новой строки в правильном положении к отсортированному пользователем wingrid с bindingsource
-
20-08-2019 - |
Вопрос
У меня есть Infragistics UltraGrid с использованием bindingSource.
Если я добавляю новый объект в свой список привязок, он добавляет строку в конец сетки, что хорошо, если нет определенной пользователем сортировки.
Вопрос: если пользователь щелкает заголовок столбца, чтобы отсортировать сетку, есть ли способ, чтобы новые строки отображались в правильном отсортированном порядке, а не всегда внизу?
Пересортировка всех строк на каждой вставке слишком дорога.
Решение
Кажется, что-то вроде гетто. Поддержка инфраструктуры также показала, что метод RefreshSortPosition () является единственным выбором.
// Add to binding list which will trigger a row to be added to the bound ultragrid.
this.bindingList.Add(new Person("Smith", "John"));
// Get length since we know this will always be added to the end
int length = this.ultraGrid.Rows.All.Length;
// Get it to sort
this.ultraGrid.Rows[length - 1].RefreshSortPosition();
Чтобы быть немного более эффективным, вы всегда можете проявить смекалку, отключив перерисовку и т. д., а затем вызвав команду refresh для ряда строк после пакета заказов и т. д.
Надеюсь, это поможет. Мне очень не повезло, гуглил эту проблему.