我有一个数据绑定到 DataTable 的 DataGrid(Infragistic UltraGrid)。
我想更新 DataTable 而不在数据网格上显示任何更改,直到用户单击按钮。
我尝试了以下方法来暂停网格更新,但它们都不起作用。可能我不太了解数据绑定的工作原理。
ultraGrid.BeginUpdate()
- 这是阻止网格绘制的 ultraGrid 特定方法。适用于 Aero 主题,但如果您在窗口上使用“经典”主题,则网格不会自行绘制,因为绘画已暂停。BindingSource.SuspendBinding()
- 这只会暂停对底层源的 UI 更改,而不是相反BindingSource.RaiseListChangedEvent = false
- 尝试将其设置为 false,但网格仍会自行更新。Grid.BindingContext = new BindingContext()
- 尝试查看是否可以删除任何底层绑定以防止更新网格。这个完全不行,不知道怎么用
其他想法:
ultraGrid.SetDataBinding(null, null)
- 它基本上删除了网格上不是我想要的所有信息。创建快照并覆盖网格 - 这确实是一个 hack,这是其他人建议的。我试图避免这样做。
请注意,在网格更新期间,用户无法访问网格,因为有一个模式窗口打开。用户通过此模式窗口更新数据表。这个想法是,当用户单击 OK 按钮时,他们将看到网格中的更改。
谢谢