数据源更改后重新应用列过滤器或禁止数据源更改时重置过滤器

时间:2016-03-08 14:29:33

标签: c# .net vb.net infragistics ultragrid

这是否可以使用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()

要达到这个效果吗?最值得赞赏的是一个例子。

1 个答案:

答案 0 :(得分: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))

这很有效。让doesent的.CopyTo具有ColumnFilterCollection参数或复制构造函数的重载非常愚蠢。