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