2016-03-08 43 views
-1

infragistics winforms 15.2 .net framework 4.0可能會發生這種情況嗎?我注意到我能夠通過ultragrid.displaylayout.band(i).columnfilters獲取只讀columnFilterCollection對象,但是我也可以設置此屬性,以便能夠應用我從所述getter獲得的相同列過濾器屬性?或者如果這是不可能的,我可以禁止在數據源更改過濾器重置?在數據源更改後重新應用列過濾器或不允許在數據源更改時重置過濾器

經過進一步研究,我發現了兩種可能有用的方法。我可以使用

UltraGrid.DisplayLayout.Bands(0).ColumnFilters.CopyTo() 

UltraGrid.DisplayLayout.Bands(0).ColumnFilters.CopyFrom() 

要達到這個結果嗎?一個例子將不勝感激。

+0

讓我明白。如果您更改了DataSource,您認爲基於以前的列和值的舊過濾器集合對於新數據源仍然有用嗎?或者新的數據源在架構上與舊數據源相同? – Steve

+0

什麼是數據源 - 它是如何設置的? – Plutonix

+0

@Steve這是由我們決定,他們是一樣的。 – codemonkeyliketab

回答

2
Private Function CopyByValue(ByVal input As Object, ByRef target As Object) 
     Dim success As Boolean = True 

     target = input 

     Return success 
End Function 


Private _inventoryColumnFilters As Object = Nothing 
CopyByValue(grdInventory.DisplayLayout.Bands(0).ColumnFilters,_inventoryColumnFilters) 
grdInventory.DisplayLayout.Bands(0).ColumnFilters.CopyFrom(TryCast(_inventoryColumnFilters, Infragistics.Win.UltraWinGrid.ColumnFiltersCollection)) 

這工作。很愚蠢的是.CopyTo對於一個ColumnFilterCollection參數或一個拷貝構造函數有一個重載。

+0

當我需要獲取ColumnFiltersCollection時,我只使用了Clone()並且它工作正常。我不需要一個ByVal函數。 –

相關問題