2008-08-26 6 views
18

Kann jemand eine gute Implementierung einer generischen Erfassungsklasse vorschlagen, die IBindingListView & IBindingList Schnittstellen implementiert und bietet Filtering und Suchfunktionen?Generische IBindingListView-Implementierungen

Ich sehe meine aktuellen Optionen wie:

  • eine Klasse verwenden, die jemand anderes geschrieben hat und getestet
  • von BindingList<T> Vererben und Umsetzung der IBindingListView Schnittstellen
  • eine eigene Sammlung von Grund auf neu schreiben, Implementieren IBindingListView und IBindingList.

Offensichtlich ist die erste Option meine bevorzugte Wahl.

Antwort

13

I verwendet und bei einer Implementierung ich von ein paar Jahren auf und alte MSDN Forum Post vor gefunden gebaut, aber vor kurzem suchte ich noch einmal um und ein Source Projekt BindingListView genannt gefunden. Es sieht ziemlich gut aus, ich habe es einfach noch nicht eingebaut, um meine gehackte Version zu ersetzen. Hier

+4

+1 Fünf Jahre später und das sieht immer noch wie eine große Implementierung. Ich habe nichts besseres gefunden, das das Sortieren und Filtern aus der Box unterstützt. – harlam357

+0

verdammt, einfach genial! –

+0

Es unterstützt weder Add oder LINQ? –

1

Ein paar Lösungen, die ich denken kann:

  1. The SubSonic Project hat eine ziemlich schöne Umsetzung von BindlingList<T> die Open-Source ist. Dies kann jedoch die Verwendung der gesamten SubSonic-Binärdatei zur Verwendung ihrer Implementierung erfordern.

  2. Ich genieße die Verwendung der Klassen aus dem Power Collections Projekt. Es ist ziemlich einfach, von einer der Basis-Sammlungen dort zu erben und IBindingListView zu implementieren.

+0

Gibt es eine neuere Version von Leistung Kollektionen? Diskussionsseite spricht von Updates für .net 4.0 im Jahr 2011, aber die Download-Seite Veröffentlichung ist aus dem Jahr 2007. –

3

ist die Hilfe für Ihre Methode 2 und 3 Hinter den Kulissen: Implementieren von Filtern für Windows Forms-Datenbindung

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

+0

Der Code hier funktioniert nicht! Der Wert von originalListItems wird nie festgelegt und daher wird die Liste nicht korrekt zurückgesetzt. Solange Sie das wissen, können Sie den Code in sich selbst hinzufügen. – Chris

+0

Hier ist ein weiterer Kontext für diesen Link: http://blogs.msdn.com/b/winformsue/archive/2008/05/19/implementing-filtering-on-the-ibindinglistview.aspx – Fantius

+0

@chris: Was machst du? bedeutet der originalListItems Wert wird nie gesetzt? Es wird über die OriginalList-Eigenschaft festgelegt! Oder vermisse ich etwas? –

Verwandte Themen