0

我在另一个用户控件中显示了一个带有保存和取消按钮的用户控件。当用户点击保存时,我希望内部用户控件执行它的标准功能,但我也希望父控件执行一些操作。处理这个问题的最佳方法是什么?

4

2 回答 2

2

最好的方法是引发您可以在“外部”控件中处理的自定义保存事件。

http://www.codeproject.com/Articles/8797/Mastering-Page-UserControl-Communication#4.3

这种事件方法的优点是 UserControls 仍然是可重用的。即使它们不处理此事件,您也可以在其他页面(或 UserControls)中使用 UserControl A。它是控制器的一部分,用于决定需要什么以及应该做什么。

UserControls 通常不应依赖于特定的控制器,否则它们是硬链接且不可重用的。这也是令人讨厌的错误的好来源。UserControl 可能是其他嵌套(用户)控件的控制器,但不是页面本身的控制器。

通讯摘要

  • 页面 -> 用户控件 -> 公共属性和方法
  • 用户控件 -> 页面 -> 事件
  • UserControl -> UserControl -> controller-UserControl 采用页面角色(见上文,您的用例)
于 2012-06-12T18:38:37.607 回答
0

泡沫事件符合要求, http: //msdn.microsoft.com/en-us/library/aa719644 (v=vs.71).aspx

您可以在用户控件中引发气泡事件,它将递归地传递给每个用户控件的祖先,直到它被处理

于 2012-06-12T18:50:03.923 回答