#wpf #filter #collectionviewsource
#wpf #Фильтр #collectionviewsource
Вопрос:
Я пытаюсь использовать несколько фильтров в CollectionView — используя этот подход:http://bea.stollnitz.com/blog/?p=32
Я разработал синтаксис для добавления фильтров в мой 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 с дополнительными параметрами фильтра?
Спасибо, Бен
Ответ №1:
Теперь я хочу знать, как я могу добавить дополнительные параметры к своему методу фильтрации.
Вы не можете этого сделать, подпись обработчика должна соответствовать подписи события. Самое простое решение — сохранить возраст в поле и использовать это поле в вашем обработчике:
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
Комментарии:
1. Я думал, что так и будет.