0

我正在尝试在 CollectionView 上使用多个过滤器 - 使用这种方法:http ://bea.stollnitz.com/blog/?p=32

我已经制定了将过滤器添加到我的 CollectionView 的语法

我现在想知道如何向我的 Filter 方法添加其他参数。

例如

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

是否可以使用删除门来做到这一点?不过我对它们不是很熟悉:

谁能指出我在 VB.NET 中添加多个 CollectionViewSource 过滤器和附加过滤器参数的正确方向?

谢谢本

4

1 回答 1

2

我现在想知道如何向我的 Filter 方法添加其他参数。

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

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
于 2011-11-06T01:04:23.367 回答