Редактирование с использованием DexExpress PivotGridControl
У меня есть WinForm с PivotGridControl, связанный с DataTable. В таблице данных есть одно поле, которое я хочу разрешить пользователю обновлять.
Я выяснил, как связать редактора с полем. Когда пользователь нажимает на ячейку, появляется редактор, пользователь редактирует значение и нажимает Enter, вызывается мой обработчик события EditValueChanged, и я могу сохранить значение.
но проблема возникает после сохранения значения. Моя функция завершается менее чем за минуту, но некоторые из них не завершаются, и мой пользовательский интерфейс зависает на 50-60 секунд.
Я подозреваю, что после завершения редактирования сводная сетка выполнит некоторые вычисления, может обновлять итоговые / итоговые значения.
Я пытался с выключением всего типа общего, но не повезло.
Мой пользовательский интерфейс перестает отвечать на запросы после завершения моей функции для события editvalueChanged.
Может ли кто-нибудь помочь мне понять, почему сетка занимает так много времени и как я могу обойти это.
void pivotGridControl_EditValueChanged(object sender, EditValueChangedEventArgs e) {
PivotDrillDownDataSource ds = e.CreateDrillDownDataSource();
for (int j = 0; j < ds.RowCount; j++) {
ds[j][e.DataField] = Convert.ChangeType(e.Editor.EditValue, ds[j][e.DataField].GetType());
}
}
Я использую Devex v14.1.
Всякий раз, когда я делаю изменения в сетке, событие EditValueChanged срабатывает. Таким образом, мы можем сказать, что мы внесли изменения в одну ячейку за раз, это событие будет запущено один раз и будет ds.rowCount =1.
Также мой метод завершен менее чем за 1 секунду. После завершения метода пользовательский интерфейс подвешен на 50-60 секунд. В моем решении нет кода, который выполняется в течение этих 50-60 секунд.
У меня есть около 300 МБ данных в сетке.