Question

Quelqu'un peut-il suggérer une bonne mise en œuvre d'une collection générique de la classe qui implémente l' IBindingListView & IBindingList d'interfaces et de l'offre de Filtrage et de capacités de Recherche?

Je vois mes options:

  • À l'aide d'une classe que quelqu'un d'autre a écrit et testé
  • Héritant de BindingList<T>, et la mise en œuvre de la IBindingListView interfaces
  • Écrire une collection personnalisée à partir de zéro, la mise en œuvre de IBindingListView et IBindingList.

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

Était-ce utile?

La solution

J'ai utilisé et construit sur la mise en œuvre que j'ai trouvé sur et vieux MSDN post sur le forum il y a quelques années, mais récemment, j'ai cherché autour de nouveau et a trouvé un projet sur sourceforge appelé BindingListView.Il a l'air assez sympa, je n'en ai pas tiré dessus pour remplacer ma version piratée encore.

package nuget: Equin.ApplicationFramework.BindingListView

Exemple de code:

var lst = new List<DemoClass>
{
    new DemoClass { Prop1 = "a", Prop2 = "b", Prop3 = "c" },
    new DemoClass { Prop1 = "a", Prop2 = "e", Prop3 = "f" },
    new DemoClass { Prop1 = "b", Prop2 = "h", Prop3 = "i" },
    new DemoClass { Prop1 = "b", Prop2 = "k", Prop3 = "l" }
};
dataGridView1.DataSource = new BindingListView<DemoClass>(lst);
// you can now sort by clicking the column headings 
//
// to filter the view...
var view = (BindingListView<DemoClass>)dataGridView1.DataSource;            
view.ApplyFilter(dc => dc.Prop1 == "a");

Autres conseils

Voici l'aide de votre méthode 2 et 3 Derrière les Coulisses:La mise en œuvre de Filtrage pour la Liaison de Données Windows Forms

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

Un couple de solutions, que je pense:

  1. L' SubSonic Projet a une assez bonne mise en œuvre de BindlingList<T> qui est open source.Même si cela peut nécessiter l'utilisation de l'ensemble de la Subsonique binaire à utiliser leur mise en œuvre.

  2. J'ai plaisir à utiliser les classes à partir de la La Puissance Des Collections projet.Il est assez simple à hériter de l'un de la base de collections et de mettre en œuvre IBindingListView.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top