2011-11-06 25 views
0

我想上的CollectionView使用多种过滤器使用多个过滤器上的CollectionView - 使用这种方法:http://bea.stollnitz.com/blog/?p=32如何在VB.NET

我已经制定了语法添加过滤器,以我的CollectionView

我现在想知道如何将其他参数添加到我的过滤器方法中。

例如

Public Shared Sub FilterByAge(ByVal Item As Object, ByVal e As FilterEventArgs, ByVal Age As Int32) 
    ' 
    ' 
    Dim PersonToFilter As Person = TryCast(e.Item, Person) 
    ' 
    ' 
    If Not PersonToFilter.Age = Age Then 
     ' 
     e.Accepted = False 
     ' 
    End If 
    ' 
    ' 
End Sub 

是否有可能使用Deletegate做到这一点?我不是很熟悉他们:

任何人都可以指向我在正确的方向添加多个CollectionViewSource过滤器在VB.NET与额外的过滤器参数?

感谢 本

回答

2

我现在想知道我怎么能到我的筛选方法添加额外的参数。

您不能这样做,处理程序签名必须匹配事件签名。最简单的解决方案是将年龄存储在一个字段中,并在您的处理程序中使用该字段:

Private _age As Int32 

Public Sub FilterByAge(ByVal Item As Object, ByVal e As FilterEventArgs) 
    ' 
    ' 
    Dim PersonToFilter As Person = TryCast(e.Item, Person) 
    ' 
    ' 
    If Not PersonToFilter.Age = _age Then 
     ' 
     e.Accepted = False 
     ' 
    End If 
    ' 
    ' 
End Sub 
+0

我认为情况会如此。 – Ben