2008-08-26 13 views
18

Quelqu'un peut-il suggérer une bonne implémentation d'une classe de collection générique qui implémente les interfaces IBindingListView & IBindingList et fournit des fonctionnalités de filtrage et de recherche?Générique IBindingListView Implémentations

Je vois mes options actuelles:

  • En utilisant une classe que quelqu'un a écrit autre et testé
  • Héritant de BindingList<T>, et mettre en œuvre les IBindingListView interfaces
  • Ecrire une collection personnalisée à partir de zéro, mettant en oeuvre IBindingListView et IBindingList.

Évidemment, la première option est mon choix préféré.

Répondre

13

j'ai utilisé et construit sur une mise en œuvre que j'ai trouvé sur et ancien il y a post sur le forum MSDN de quelques années, mais récemment je cherchais à nouveau et trouvé un projet sourceforge appelé BindingListView. Ca a l'air plutôt sympa, je ne l'ai pas encore fait pour remplacer ma version piratée.

+4

+1 Cinq ans plus tard et cela ressemble encore à une excellente implémentation. Je n'ai rien trouvé de mieux qui supporte le tri et le filtrage hors de la boîte. – harlam357

+0

putain, simple génial! –

+0

Il ne prend pas en charge Add ou LINQ? –

1

Quelques solutions que je peux penser à:

  1. Le SubSonic Project a une mise en œuvre assez agréable de BindlingList<T> qui est open source. Bien que cela puisse nécessiter l'utilisation de l'intégralité du binaire SubSonic pour utiliser leur implémentation. J'aime utiliser les classes du projet Power Collections. Il est assez simple d'hériter de l'une des collections de base et d'implémenter IBindingListView.

+0

Y at-il une version plus récente des collections électriques? La page de discussion parle de mises à jour pour .net 4.0 en 2011, mais la sortie de la page de téléchargement date de 2007. –

3

Voici l'aide pour la méthode 2 et 3 Dans les coulisses: Mise en œuvre de filtrage pour Windows Forms Data Binding

http://www.microsoft.com/downloads/details.aspx?FamilyID=4af0c96d-61d5-4645-8961-b423318541b4&displaylang=en

+0

Le code ici ne fonctionne pas! La valeur originalListItems n'est jamais définie et la liste n'est pas réinitialisée correctement. Tant que vous le savez, vous pouvez ajouter le code en vous-même. – Chris

+0

Voici un peu plus de contexte pour ce lien: http://blogs.msdn.com/b/winformsue/archive/2008/05/19/implementing-filtering-on-the-ibindinglistview.aspx – Fantius

+0

@chris: que faites-vous signifie que la valeur originalListItems n'est jamais définie? C'est réglé par la propriété OriginalList! Ou est-ce que je manque quelque chose? –

Questions connexes