我有一個網格,總共顯示成千上萬的行,顯然用戶只是在任何時間點看這些行的一小部分,一般在10〜20左右行。擺脫不可見的UltraGridRow實例
我啓用LoadOnDemand,從而確保UltraGridRow實例和其他幾個對象纔會被創建時移動到可見區域:
grid.DisplayLayout.LoadStyle = LoadStyle.LoadOnDemand;
這個偉大的工程(根據我的記憶profiler),但是當我上下滾動整個表格時,即觸發所有行的UltraGridRows的創建,那麼所有的UltraGridRows將被創建並永遠留在內存中。
我該如何(理想情況下自動,但如果沒有,手動)擺脫UltraGridRow對象的視圖行不可見? (或只是擺脫所有UltraGridRows的 - 反正自動他們會重新創建)
一種強制方法我想通了,是這樣的:
var tmp = grid.DataSource;
grid.DataSource = null;
grid.DataSource = tmp;
它會導致一些副作用的,所以有一些其他擺脫UltraGridRows的方法?
順便說一句,我想這兩個傢伙,但沒有成功(試圖真和假爲布爾PARAMS)。
grid.Rows.Refresh(RefreshRow.ReloadData, false, true);
grid.Rows.DeallocateCells(true);
我試圖讓內存消耗下降,UltraGridRows是目前主要的消費(自己UltraGridRows不huuuge,他們消耗下每200個字節,這在我的情況,是指一對夫婦兆的,只是讓你知道我們在說什麼)。
這是Infragistics 9.2。
任何想法?