在WPF应用程序(C#)中,我在类 ClassA 中有一个 ObjectX 的实例。此 ClassA 在 ClassB 中实例化。
因此 ClassB - > 包含的实例 - > ClassA - > ,其中包含的实例 - >的目标x
ObjectX 引发 EventA 。我需要在ClassB中处理这个事件。
这个概念叫什么(事件委托,事件路由......)?怎么办呢?
答案 0 :(得分:1)
在WPF中,它被称为Routed events,但只有当这两个都成立时才会起作用:
LogicalTreeHelper
状态,你的控件是父母/子女彼此。tunelled
或bubbling
将起作用。如果不是,则路由事件对您没有帮助。我觉得你需要的就是这样:
B类:
this.instanceOfA.InstanceOfX.MyEvent += MyHandlerInClassB;
但这与WPF无关。
UPD:或类似的东西,如果你不想让instanceOfX可访问:
classA
上定义同一事件,并在instanceOfX
举起事件时提出该事件ClassB
句柄instanceOfA.MyEvent
在这种情况下,您可以将instanceOfX
设为私有,但您必须在中间再添加一个事件。
答案 1 :(得分:0)