2011-10-13 71 views
2

我得到了DataGrid(Infragistic UltraGrid),該DataGrid被數據綁定到DataTable。如何掛起DataTable通知或數據綁定以防止UI更新

我想更新DataTable而不顯示數據網格上的任何更改,直到用戶單擊按鈕。

我已經嘗試過以下方法來暫停網格udpate,並且它們都不起作用。可能我不太瞭解數據綁定的工作原理。

  1. ultraGrid.BeginUpdate() - 這是ultraGrid特定的方法,從繪畫停止網格。適用於Aero主題,但如果您在窗口上使用「經典」主題,則網格自繪畫暫停後不會自行繪製。

  2. BindingSource.SuspendBinding() - 這隻能暫停UI改變底層源,不在身邊

  3. BindingSource.RaiseListChangedEvent = false的otherway - 試圖將其設置爲false,但網格仍進行自我更新。

  4. Grid.BindingContext = new BindingContext() - 嘗試查看是否可以刪除任何基礎綁定以防止更新網格。這並不是在所有的工作,不知道如何使用它

其他的想法:

  • ultraGrid.SetDataBinding(null, null) - 它基本上消除對所有信息網格這不是我想要的。

  • 創建快照並覆蓋網格 - 這確實是一個黑客,這是其他人建議的。我試圖避免做這樣的黑客攻擊。

  • 請注意,在網格更新期間,由於打開了模式窗口,用戶無法訪問網格。用戶通過這個模式窗口更新數據表。這個想法是,當用戶點擊確定按鈕時,他們會看到網格中的變化。

    感謝

    +0

    BindingSource.SuspendBinding幫助? – CodingBarfield

    回答

    0

    我知道要完全抑制對數據源變化的任何活動是使用ISupportInitialize接口接口的UltraGrid的實行的唯一方法:

    ((ISupportInitialize)Grid).BeginInit(); 
    
    /// 
    /// your code here 
    /// 
    
    ((ISupportInitialize)Grid).EndInit(); 
    
    強權
    相關問題