Je veux filtrer une collectionviewsource en utilisant un filtre que j'ai écrit, mais je ne suis pas sûr de savoir comment je peux y appliquer le filtre?Filtrer une wpf collectionviewsource dans VB?
Voici mon point de vue collection source:
<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>
J'ai mis en place un filtre en tant que tel:
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
Alors, comment puis-je obtenir le CollectionViewSource filtré par le filtre de la charge? Pourriez-vous s'il vous plait donner tout le code dont j'ai besoin (quelques lignes seulement) car je ne suis pas habitué au codage.
Merci les gars
EDIT: Pour mémoire,
<CollectionViewSource x:Key="myCollectionView" Filter="WorkerFilter" ... />
me donne l'erreur:
Failed object initialization (ISupportInitialize.EndInit). 'System.Windows.Data.BindingListCollectionView' view does not support filtering. Error at object 'myCollectionView'
Merci, mais quand j'essaie que je reçois l'erreur suivante: Échec de l'initialisation de l'objet (ISupportInitialize.EndInit). La vue 'System.Windows.Data.BindingListCollectionView' ne prend pas en charge le filtrage. Erreur sur l'objet 'myCollectionView' –
La source de votre CollectionView ne prend pas en charge le filtrage car elle est basée sur une BindingList. Je ne suis pas sûr pourquoi BindingList ne supporte pas le filtrage, mais une vieille liste simple fait. Essayez de modifier votre source à une liste plutôt que BindingList . –
Uuuhhh .... désolé, je ne suis pas sûr de ce que je ferais à ce sujet. Je suppose que "Source =" {Binding Path = Query4, Source = {x: Application statique.Current}} "" est ma liste de liaison? Cela fait référence à une base de données appelée Query4. Comment pourrais-je transformer cela en une liste ordinaire? merci –