Kommunizieren Sie mit dem Ereignisaggregator in ASP.NET zwischen zwei Benutzerkontrolle mit dem Ereignisaggregator

StackOverflow https://stackoverflow.com/questions/8331814

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 :(

War es hilfreich?

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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top