2009-08-24 17 views
0

Wenn ich meinem Formular ein Steuerelement hinzufüge, muss ich es derzeit mit meinem Speicher- und Ladecode mit meinen internen Datenstrukturen verbinden, und ich muss dies mit allen meinen Steuerelementen tun. Dieses Szenario verletzt stark das DRY-Prinzip (do not repeat yourself) und kann geringfügige Fehler verursachen.WinForms: häufige Aufgaben automatisieren

Ich bin auf die Idee gekommen, alle Controls in einer foreach-Schleife zu durchlaufen, die Name-Eigenschaft ist der Schlüssel und der Text (oder was auch immer abhängig vom Typ) ist der Wert in einem Wörterbuch (Filter für Benutzer Eingabesteuerelemente während des Vorgangs). Auf diese Weise muss ich das Wörterbuch serialisieren/deserialisieren, um es zu speichern/zu laden.

Also, warum frage ich? Ich bin ein Anfänger und ich denke, es gibt mehr erprobte und erprobte Methoden, um die gleiche Aufgabe zu erfüllen, als das, was ich mir ausgedacht habe.

Und Entschuldigung für mein klobiges Englisch, ich hatte nicht das Glück, es als meine Muttersprache zu lernen.

Danke für Ihre Hilfe

Anmerkung: Ich weiß über WPF, aber ich habe zu halten alles, was Sie .NET 2.0

+0

Das klingt wirklich wie eine selbst entwickelte Datenbindungslösung. Haben Sie versucht, die Option Datenquellen für Ihr Objekt zu verwenden? –

Antwort

0

Im Idealfall wollen, dass die Kontrollen von einer Basisklasse erben, Die Basisklasse kann dann mit all dem umgehen, wenn jedes Steuerelement initialisiert wird. Wenn Sie das Dictionary benötigen und das Dictionary dann in eine Methode übernehmen, kann die Methode alle für das Control erforderlichen Eigenschaften festlegen.

Wenn jede Steuer erbt, dann wird die Logik geteilt und DRY :)

+0

Sicher, aber wenn er WinForms verwendet, erben sie bereits von bestimmten Basisklassen. –

+0

Die Basisklasse von diesen Klassen Zum Beispiel Kontrolle erben könnte> MyControl Steuerung werden würde> MySetupBase> MyControl –

1

Es dafür, dass bereits gute Beispiele sind, RealPosition sehen. Wir haben diese Quelle modifiziert, um das Speichern von Formularen/Kontrollpositionen in unserem Projekt zu ermöglichen, indem Sie einfach eine Komponente auf das Formular im Designer platzieren und dort die erforderlichen Eigenschaften angeben. Schauen Sie sich auch die Schnittstellen IExtenderProvider und ISupportInitialize auf MSDN an.

Verwandte Themen