Я получил DataGrid (Infragistic UltraGrid), который привязан к DataTable.
Я хотел бы обновить DataTable, не показывая никаких изменений в сетке данных, пока пользователь не нажмет кнопку.
Я пытался приостановить обновление сетки следующими способами, и ни один из них не работает. Возможно, я не совсем понимаю, как работает привязка данных.
ultraGrid.BeginUpdate()
- это метод, разработанный специально для UltraGrid, который не дает сетке рисовать. Хорошо работает с темой Aero, но если вы используете «классическую» тему в окне, сетка не отрисовывается сама, поскольку рисование приостановлено.
BindingSource.SuspendBinding()
- Это только приостановит изменение пользовательского интерфейса к базовому источнику, но не наоборот
BindingSource.RaiseListChangedEvent = false
- попытался установить значение false, но сетка все еще обновляется.
Grid.BindingContext = new BindingContext()
- попытаться выяснить, могу ли я удалить привязку, лежащую в основе, чтобы предотвратить обновление в сетке. Это вообще не работает и не знаю, как его использовать
Другие идеи:
ultraGrid.SetDataBinding(null, null)
- Он в основном удаляет всю информацию в сетке, что не то, что я хочу.
Создать снимок и накрыть сетку - это действительно взлом, который предлагали другие. Я пытаюсь избежать такого взлома.
Обратите внимание, что во время обновления сетки пользователь не может получить доступ к сетке, потому что открыто модальное окно. Пользователь обновляет таблицу данных через это модальное окно. Идея состоит в том, что когда пользователь нажимает кнопку ОК, он видит изменения в сетке.
Спасибо