Sammlung Editor zur Laufzeit
-
03-07-2019 - |
Frage
Ich arbeite an einer Anwendung Namen / Wert-Paare mit einem Eigenschaftenraster zu bearbeiten. Einige der Eigenschaften in meiner Klasse Datei sind Listdictionary Sammlungen. Gibt es ein Editor Attribut, das ich in der Eigenschaft Erklärung gelten kann, dass das machen Auflistungs-Editor arbeiten zur Laufzeit? Wenn nicht, ist es möglich, erben von ComponentModel.Design.CollectionEditor zur Verwendung zur Laufzeit? Ich muss in der Lage, hinzuzufügen, löschen und die Sammlung Wert bearbeiten. Danke vielmals, Terry
Lösung
denke ich, dass dieser Artikel erklärt, was Sie brauchen: So bearbeiten und Persist Kollektionen mit Collection
Andere Tipps
von Codeproject Artikel [ http://www.codeproject.com /KB/cs/dzcollectioneditor.aspx][1]
Es gibt drei Anforderungen, die ein Sammlung sollte, um gerecht zu werden erfolgreich bestanden mit der Collection:
- Erstens muss die Sammlung der IList-Schnittstelle implementieren (Abgeleitet von System.Collections.CollectionBase ist in den meisten Fällen die beste Option).
Zweitens muss es einen Indexer (Artikel in VB.NET) Eigenschaft. Die Art von Diese Eigenschaft wird durch die verwendete Collection zu bestimmen, die Standardtyp der Instanzen, hinzufügen wird zur Sammlung hinzu.
Um besser zu verstehen, wie dies funktioniert, werfen Sie einen Blick auf GetItemType () Funktion der CustomCollectionEditorForm:
geschützten virtuellen Typ GetItemType (IList coll) { Property pi = coll.GetType (). GetProperty ( "Item", neue Type [] {typeof (int)}); Rückkehr pi.PropertyType }
Drittens muss die Collection-Klasse eine oder beide der folgenden Aktionen durchführen Methoden: Hinzufügen und AddRange. Obwohl IList-Schnittstelle hat ein Add-Mitgliedes und Collection implementiert IList, Sie noch müssen Sie ein Add-Methode implementieren für Ihre Sammlung, da Collection erklärt eine explizite Mitglied Umsetzung des IList des Mitglied hinzufügen. Die Designer serialisiert die Sammlung nach dem, was Verfahren Sie implementiert haben. Wenn du beide implementiert haben, die AddRange ist bevorzugt.
In diesem Artikel werden Sie alles, was Sie brauchen, finden Sie Ihre Sammlung auf dem Grundstück Raster zu implementieren