2011-11-06 22 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