Erweitere benutzerdefinierte Ereignisse in C # WinForms

8

Ich habe einige Events, die ich selbst erstellt habe und habe mich gefragt, wie ich sie aufbringen kann, wenn ich will.

Wahrscheinlich ist mein Anwendungsdesign auch durcheinander, könnte einen Blick darauf werfen, wenn Sie möchten.

Dies ist die Struktur

%Vor%

In diesem Fall enthält MainWindow.TextBox einige Informationen, die zur Laufzeit ziemlich oft aktualisiert werden. Also, ich brauche es irgendwie, um mich zu aktualisieren, wenn ich will (so kann es seine Daten aus der Datenbank neu laden, wo es gespeichert ist)

Ich habe versucht, ein EventHandler an sein Validating -Event anzuhängen, aber das schien den Trick nicht zu machen.

Also, im Grunde habe ich eine Methode, die die Daten in ProgramContext

neu lädt %Vor%

Dies muss immer dann ausgeführt werden, wenn eine andere Methode (die neue Daten in table schreibt) ausgeführt wird.

Irgendwelche Ideen?

    
Florian Peschka 29.07.2010, 06:53
quelle

1 Antwort

13

Bearbeiten: Es scheint, dass Ihre Frage mehr auf das Anhängen an ein bestimmtes Ereignis gerichtet ist, aber FWIW unten beschreibt, wie benutzerdefinierte Ereignisse im Allgemeinen ausgelöst werden.

Behandeln des geänderten TextBox-Ereignisses

Nach dem, was ich verstehe, möchten Sie, dass eine externe Partei Ereignisse überwacht, die von einem Textfeld in einem Formular ausgelöst werden, und dann Daten in einem anderen Formular erneut laden?

Eine schnelle und schmutzige Aufgabe wäre, das TextBox-Formular öffentlich zu machen, und dann könnten andere Teilnehmer dieses Ereignis abonnieren.

%Vor%

ODER in neueren Versionen von C #:

%Vor%

Hinzufügen eines benutzerdefinierten Ereignisses

Ein anderer, saubererer Weg wäre, ein benutzerdefiniertes Ereignis auszulösen , - z MyDataChangedEvent unten. Dadurch können Sie die Tatsache abstrahieren, dass die Änderungen überhaupt von einer Textbox kommen.

%Vor%

Sie können sich auch den Ent Lib Composite Application Block und die Smart Client Software Factory ansehen - dieser hat einen sehr flexiblen Event Brokering / Pub Sub Mechanismus für die Synchronisation über UI "SmartParts" (Steuerelemente, Formulardialoge usw.) in einem lose gekoppelte Mode. (CAB ist jetzt sehr alt).

    
StuartLC 29.07.2010, 07:08
quelle

Tags und Links