0

我找不到在 ASP.NET Web 表单中实现的事件聚合器的任何示例/演示。几乎所有文章都是针对 Silverlight 的。

你能给我指一些文章吗,最好在 ASP.NET web.forms 中使用实现事件聚合器模式的工作代码。

最简单的例子:ASP.net webform 中的两个用户控件,通过事件聚合器模式相互通信。

编辑

目前我有一个严重基于用户控件的 ASP.NET Web 表单应用程序。容器 aspx 页面可以托管多个需要在它们之间进行通信的用户控件 (ascx)。目前,它是由通过容器页面的事件完成的:

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);   
         }

这已经失控了:(

4

1 回答 1

3

我不熟悉事件聚合器模式,但您的问题的解决方案可以在 Model View Presenter 模式中找到。有一个框架可以将Model View Presenter引入 Web 窗体。在文档中有一个“跨演示者消息传递”的示例,它通过消息总线和发布和订阅模型来解决:

http://www.ronaldwidha.net/2010/05/31/a-simple-example-of-the-webformsmvp-cross-presenter-messaging/

此外,如果您想查看模式实现,该项目的源代码位于Codeplex上。

这有帮助吗?

于 2011-11-30T22:10:00.307 回答