我有三个用户控件。 ControlC是ControlB的父级,ControlB是ControlA的父级。现在,我想使用ControlA的事件来更改ControlC的内容(假设将ControlC的内容更改为ControlD)。如果只有2个控件,我可以这样做,但我不知道要使用3个控件。有什么想法吗? 对于2个控件,解决方案是:
private void ChangeParentContent()
{
UserControlB userControlB = (UserControlB)this.Parent;
userControlB.Content = new userControlC();
}
答案 0 :(得分:0)
编辑
重新阅读了几次您的问题之后,我想我会更好地了解您的打算。 @Servy是正确的,您不应从子级修改父级。而是创建父母可以订阅的事件。触发事件后,您可以在父级中处理事件。我的原始答案(如下)提供了一些可用于实现此目标的路径。
原始
一些想法:
Modifier
更改为public
,以便您可以直接从ControlC(ControlB.ControlA.Event += ...
)访问它