簡體   English   中英

如何通過子控件事件更改父控件的內容?

[英]How can I change parent control's content though child control event?

我有三個用戶控件。 ControlC是ControlB的父級,ControlB是ControlA的父級。現在,我想使用ControlA的事件來更改ControlC的內容(假設將ControlC的內容更改為ControlD)。 如果只有2個控件,我可以這樣做,但我不知道要使用3個控件。 有什么想法嗎? 對於2個控件的解決方案是:

        private void ChangeParentContent()
    {
        UserControlB userControlB = (UserControlB)this.Parent;
        userControlB.Content = new userControlC();
    }

編輯

在重新閱讀了幾次您的問題之后,我想我會更好地了解您要做什么。 @Servy是正確的,您不應從子級修改父級。 而是創建父母可以訂閱的事件。 觸發事件后,您可以在父級中處理事件。 我的原始答案(如下)提供了一些可用於實現此目的的路徑。

原版的

一些想法:

  1. ControlB可以訂閱ControlA事件。 然后,ControlB觸發其自己的事件,ControlC訂閱了該事件。
  2. 將ControlA的Modifier更改為public以便您可以直接從ControlC( ControlB.ControlA.Event += ... )訪問它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM