Kommunizieren Sie mit dem Ereignisaggregator in ASP.NET zwischen zwei Benutzerkontrolle mit dem Ereignisaggregator
-
26-10-2019 - |
Frage
Ich kann kein Beispiel/Demo des Ereignisaggregators finden, der in ASP.NET -Webformularen implementiert ist. Fast alle Artikel sind für Silverlight.
Können Sie mich auf einen Artikel verweisen, vorzugsweise mit Arbeitscode in ASP.NET Web.forms, die das Ereignis -Aggregator -Muster implementieren?
Einfachste Beispiel: Zwei Benutzersteuerungen in ASP.NET Webform, die sich gegenseitig mit dem Ereignis -Aggregator -Muster kommunizieren.
BEARBEITEN
Derzeit habe ich eine ASP.NET -Webformanwendung, die stark auf Benutzersteuerungen basiert. Container ASPX -Seite kann mehrere Benutzersteuerungen (ASCX) hosten, die dazwischen kommunizieren müssen. Derzeit erfolgt dies durch Ereignisse, die die Containerseite durchlaufen:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
// Event from UC1 is handled in UC2
UC1.OnCategoryFilterSelected += new CategoryFilterSelectedHandler(UC2.MethodInUC2);
// Event from UC1 is handled in in container APSX page
UC1.OnCategoryFilterSelected += new CategoryFilterSelectedHandler (MethodInContainerPage);
}
Dies gerät außer Kontrolle :(
Lösung
Ich bin mit dem Ereignis -Aggregator -Muster nicht vertraut, aber eine Lösung für Ihr Problem kann im Modell der Modellansichts -Moderator gefunden werden. Es gibt einen Rahmen, um mitzubringen Modellansicht Moderator zu Webformen. In der Dokumentation gibt es ein Beispiel für "Cross-Presenter-Messaging", das durch einen Nachrichtenbus und ein Veröffentlichung und Abonnieren von Modell gelöst wird:
http://www.ronaldwidha.net/2010/05/31/a-simple-example-of-the-webformsmvp-cross-presenter-messaging/
Auch die Quelle für das Projekt ist eingeschaltet Codeplex, Wenn Sie sich die Musterimplementierung ansehen möchten.
Hilft das?