获取父用户控件WPF C#的名称
Posted
技术标签:
【中文标题】获取父用户控件WPF C#的名称【英文标题】:Get the name of the parent user control WPF C# 【发布时间】:2013-07-11 11:55:43 【问题描述】:我可以访问用户控件 A。我想获取有关用户控件 C 的信息。在 WPF 中有没有办法做到这一点?结构基本上就是你所看到的。用户控件 D 是功能区,C 是功能区上的选项卡,B 和 A 是 C 的内容。我似乎无法访问 C。我尝试使用 A 的 Parent 属性,但它似乎没有给出我的 C 信息。
【问题讨论】:
Parent
属性为您提供了什么?
我认为它给出了窗口或其他一些晦涩的元素。这个程序非常复杂。
你在使用 MVVM 吗?如果不是,我建议使用这种方法。通过这种方式,您可以访问neath 下的基本逻辑(视图模型),而无需尝试直接跳过控件。
你能把父窗口投射到Control C吗?
+1 精美插图! :)
【参考方案1】:
尝试使用VisualTreeHelper.GetParent
或使用递归函数here
【讨论】:
太棒了,我会在星期一试试。谢谢 这确实有效,但事实证明这个问题并不能解决我的问题。复选标记和 +1 以获得正确答案!谢谢【参考方案2】:也许您可以尝试将父级转换为 UserControl C,如下所示:
(this.Parent as UserControlC).YourProperty
【讨论】:
【参考方案3】:在 Loaded 事件处理程序中使用 Window.GetWindow(this) 方法。
public MainView()
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainView_Loaded);
void MainView_Loaded(object sender, RoutedEventArgs e)
Window parentWindow = Window.GetWindow(this);
...
【讨论】:
以上是关于获取父用户控件WPF C#的名称的主要内容,如果未能解决你的问题,请参考以下文章