我找不到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);
}
这已经失去控制:(
答案 0 :(得分: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。
这有帮助吗?