Как использовать несколько фильтров на CollectionView в VB.NET - PullRequest
0 голосов
/ 06 ноября 2011

Я пытаюсь использовать несколько фильтров в 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

Можно ли сделать это с помощью Deletegate? Я не очень знаком с ними, хотя:

Может кто-нибудь указать мне правильное направление для добавления нескольких фильтров CollectionViewSource в VB.NET с дополнительными параметрами фильтра?

Спасибо Ben

1 Ответ

2 голосов
/ 06 ноября 2011

Теперь я хочу узнать, как я могу добавить дополнительные параметры в свой метод 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
...