数据源更改后重新应用列过滤器或禁止在数据源更改时重置过滤器
Reapply column filters after datasource change or disallow filter reset on datasource change
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()
要达到这个效果?将不胜感激。
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))
这行得通。拥有一个确实具有 ColumnFilterCollection 参数或复制构造函数重载的 .CopyTo 是非常愚蠢的。
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()
要达到这个效果?将不胜感激。
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))
这行得通。拥有一个确实具有 ColumnFilterCollection 参数或复制构造函数重载的 .CopyTo 是非常愚蠢的。