Okay, ich habe ein paar Fragen über die Verwendung von PropertyGrid und Sammlungen gelesen. Aber, ich habe eine schwierige Zeit zu verstehen, wie/ob [TypeConverter]
für mich funktionieren wird. Ich habe den kleinen Klappentext gelesen, den MSDN herausgibt, und ehrlich gesagt, ist er für diesen armen, autodidaktischen Programmierer ein wenig unzureichend.
Also, hier ist, was ich habe. Zuerst eine Sammlung:
[Serializable]
public List<ModuleData> Modules
{ get { return modules; } }
private List<ModuleData> modules;
Das Objekt in der Sammlung:
[Serializable]
internal class ModuleData : IEquatable<ModuleData>
{
// simple data class with public properties
// to display in the propgrid control
}
Ich habe ein ListView-Steuerelement, das Elemente enthält, die sowohl ModuleData-Objekte als auch BatchData-Objekte beschreiben. Wenn ich ein BatchData-Element aus der ListView auswähle, zeigt das PropertyGrid erwartungsgemäß den Sammlungseditor an. Gibt es eine Möglichkeit, den Auflistungseditor auf ModuleData-Elemente zu beschränken, die nur im ListView-Steuerelement aufgeführt sind? Im Idealfall möchte ich nicht, dass ein BatchData-Element (aus der ListView) zu einer BatchData-Sammlung hinzugefügt wird - vor allem, da die Sammlung nicht für BatchData-Objekttypen "typisiert" ist.
Falls weitere Code-Beispiele gewünscht werden, werde ich gerne ein paar Schnipsel einfügen.
Zur Verdeutlichung: ModuleData ist eine benutzerdefinierte Klasse, die Daten enthält, die für die Instanzierung einer Klasse innerhalb einer bestimmten Assembly erforderlich sind. Sie enthält lediglich Felder und öffentliche/interne Eigenschaften. Ich möchte den mit dem Eigenschaftsraster-Steuerelement zusammengestellten Sammlungseditor verwenden, um ModuleData-Objekte zu BatchData hinzuzufügen Module
Sammlung. Die ModuleData-Objekte, die für das Hinzufügen qualifiziert sind, werden im ListView-Steuerelement aufgelistet.
EDIT: Entfernt die : List<ModuleData>
Vererbung.
UPDATE: Wenn ich einen benutzerdefinierten Sammlungseditor erstellen werde, bedeutet das, dass ich mein eigenes benutzerdefiniertes Formular/Dialogfeld erstellen werde? Und dann im Grunde dem Propertygrid die Informationen zur Anzeige meines benutzerdefinierten Sammlungsdialogs durch Attribute und Vererbung eines UITypeEditors bereitstellen?