Ich möchte eine collectionviewsource mit einem Filter filtern, den ich geschrieben habe, aber ich bin mir nicht sicher, wie ich den Filter darauf anwenden kann?Filtern Sie eine WPF collectionviewsource in VB?
Hier ist meine Sammlung Ansicht Quelle:
<Grid.Resources>
<CollectionViewSource x:Key="myCollectionView"
Source="{Binding Path=Query4, Source={x:Static Application.Current}}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="ContactID"
Direction="Descending"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Grid.Resources>
ich einen Filter als solche umgesetzt haben:
Private Sub WorkerFilter(ByVal sender As Object, ByVal e As FilterEventArgs)
Dim value As Object = CType(e.Item, System.Data.DataRow)("StaffSection")
If (Not value Is Nothing) And (Not value Is DBNull.Value) Then
If (value = "Builder") Or (value = "Office Staff") Then
e.Accepted = True
Else
e.Accepted = False
End If
End If
End Sub
So wie kann ich die Collection erhalten durch den Filter auf Last gefiltert? Könntest du mir bitte den Code geben, den ich brauche (nur ein paar Zeilen, die ich finde), da ich noch ziemlich neu in der Programmierung bin.
Danke Jungs
EDIT: Für die Aufzeichnung
<CollectionViewSource x:Key="myCollectionView" Filter="WorkerFilter" ... />
gibt mir den Fehler:
Failed object initialization (ISupportInitialize.EndInit). 'System.Windows.Data.BindingListCollectionView' view does not support filtering. Error at object 'myCollectionView'
Danke, aber wenn ich versuche, dass ich bekomme folgenden Fehler: Fehlgeschlagene Objektinitialisierung (ISupportInitialize.EndInit). Die Ansicht 'System.Windows.Data.BindingListCollectionView' unterstützt keine Filterung. Fehler am Objekt 'myCollectionView' –
Die Quelle Ihrer CollectionView unterstützt keine Filterung, da sie auf einer BindingList basiert. Ich bin mir nicht sicher, warum BindingList das Filtern nicht unterstützt, aber eine einfache alte Liste tut es. Versuchen Sie, Ihre Quelle zu einer Liste statt BindingList zu ändern. –
Uuuhhh .... Entschuldigung, ich bin mir nicht sicher, wie ich das machen würde. Ich nehme an "Source =" {Binding Path = Query4, Quelle = {x: Static Application.Current}} "" ist meine verbindliche Liste? Dies bezieht sich auf eine Datentabelle namens Query4. Wie könnte ich daraus eine gewöhnliche Liste machen? danke –