【发布时间】:2013-10-31 06:45:43
【问题描述】:
我正在开发一个 WPF 应用程序,我希望将父项中的一个事件通知给元素树中的几个子项,以便他们每个人都可以相应地采取行动。我知道自定义RoutedEvent 可用于通过向上冒泡事件来向从孩子到其祖先之一的另一个方向发出信号,以便任何祖先元素都可以处理该事件。我想要的是通知孩子父母发生的事件,他们会适当地处理它们。实现这一目标的最佳策略是什么?
编辑:
澄清 cmets:假设我有一个父母 UserControl。它有一个TabControl,它的内容是几个嵌套的子UserControls。现在考虑一个场景,我希望TabControl.SelectionChanged() 事件导致每个子UserControl 发生一些变化。如何做到这一点? (每个选项卡的内容是一个UserControl,它本身可能包含另外几级子级UserControls。我希望底层的UserControl 知道SelectionChanged() 事件并做出相应的响应)。
【问题讨论】:
-
最好的策略是附加属性和附加事件。
-
您的问题不清楚,标题状态为“通知孩子父母发生的事件”,正文状态为“父母收到孩子的通知”。请澄清您的问题!
-
另外请说明事件是基于数据/模型还是纯 UI 事件
-
@NickolaiNielsen 对不起,如果我不清楚.. 我写了“事件在父母中被通知给它的孩子”
-
该事件是一个 UI 事件,不是基于数据/模型的,