我有一个在用户控件中使用的自定义控件,并且此用户控件托管在 MainUsercontrol 中。
现在,当自定义控件中发生事件时,MainUsercontrol 中的选定选项卡应该更改。
有没有办法像下面这样说?
this.Parent.Parent.SelectTab(1);
?
直接从孩子更改父控件上的此类内容通常是不受欢迎的。
你为什么不在你的子控件中让这个事件冒泡RoutedEvent
,让视觉树中的父级处理事件并相应地处理它认为合适的动作。
一些有用的链接:
样本:
一个演示,显示您的用例,其中MainWindow
持有一个在UserControl
其中包含另一个UserControl
并处理由MainWindow
孙子引发的自定义事件UserControl
。
感谢所有答案...我找到了以下解决方案,但我也会查看上面介绍的解决方案....
首先获取父窗口 WPF用户控件Parent
然后foreach for the Usercontrol 然后Foreach 再次找到Tabcontrol 按类型查找WPF Window中的所有控件