获取WPF C#父用户控件的名称

21

我可以访问用户控件A,我想获取用户控件C的信息。在WPF中有没有办法做到这一点?基本结构就是您看到的那样。用户控件D是一个选项卡式面板,C是选项卡上的标签,而B和A是C的内容。我好像无法访问C。我尝试使用A的Parent属性,但似乎无法给我C的信息。

输入图像描述


Parent 属性会给你什么呢? - Drew McGowen
1
我认为它给出了窗口或其他一些不明显的元素。这个程序太过复杂了。 - DotNetRussell
1
你在使用MVVM吗?如果没有,我建议采用这种方法。这样你就可以访问底层的基本逻辑(视图模型),而不需要直接跳转到控件上。 - tsells
你能将父窗口转换为控件 C 吗? - user153923
11
谢谢赞美!对美丽插图点个赞! :) - user153923
3个回答

18

尝试使用VisualTreeHelper.GetParent或使用递归函数这里


太棒了,我会在周一尝试。谢谢。 - DotNetRussell
这确实有效,但结果发现这个问题并没有解决我的问题。不过还是点赞和加1给正确的答案!谢谢 - DotNetRussell

3
也许您可以尝试将父级转换为UserControl C,就像这样:
(this.Parent as UserControlC).YourProperty

-1
在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);

    ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接