Schreiben Sie eine Globale benutzerdefinierte Ereignis in C#
Ich habe eine winform - winform1 und 2 Benutzer-Steuerelemente control1 und inhalt2 auf diese form
Nun will ich definieren benutzerdefiniertes Ereignis, die ausgelöst wird/entlassen control1 und erhielt im inhalt2. Die Veranstaltung sollte globalen und nicht direkt definiert control1. inhalt2, sollten Sie nicht wissen, über die Existenz von control1.
Die Veranstaltung soll auch erhoben werden, die von anderen kontrolliert. Wie ist der C# - code? Brauche ich so etwas wie ein Herausgeber-Klasse?
InformationsquelleAutor Elmex | 2010-12-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine statische Veranstaltung:
Abonnieren in der üblichen Weise:
Feuer, wie Sie sehen, passen:
Wie funktioniert das event halten starke Referenzen zu seinem Handler in diesem Fall? Können Sie das noch näher erläutern?
da Ereignisse durch die definition Verweise auf die Handler. Es ist nur so, dass statische Ereignisse nie aus dem Bereich überhaupt, da Sie statisch ist, in der Erwägung, dass Instanz-events gehen würde out of scope zusammen mit dem enthaltenden Objekt, wenn es gesammelt.
wie Sie sich Abmelden können eine statische Ereignisse. auch -= nicht zu funktionieren scheint
InformationsquelleAutor Kirk Woll
Was Sie beschreiben, sieht aus wie die Mediator-pattern, in denen Objekte kommunizieren durch Nachrichten. Diese Nachrichten umgesetzt werden können, wie events, callbacks oder anderen Mechanismus.
Man könnte eine Implementierung wie MVVM Light's
Messenger
Klasse (in diesem Rahmen ist für den Gebrauch mit WPF und Silverlight, aber man kann den code für diese Besondere Klasse und verwenden Sie es in WinForms)"Ein großer Vorteil des
Messenger
- Klasse über eine statische Veranstaltung ist, dass es verwendet schwache Referenzen, so dass es nicht verhindern, dass die garbage collection des gezeichneten Objekten, reduziert die Gefahr von Speicherlecks.Sehen dieser link für details über die
Messenger
KlasseInformationsquelleAutor Thomas Levesque
So können Sie Ihre form Verlag(und ein Vermittler zwischen den Kontrollen), und alle Ihre Steuerelemente werden Abonnenten werden informiert über event.
Trat ein Ereignis in einem Steuerelement, Formular mitgeteilt werden und die Ereignis-handler auf dem Formular Benachrichtigen anderen Steuerelementen, abonniert dieses Ereignis.
InformationsquelleAutor Jahan Zinedine