【问题标题】:Get the name of the parent user control WPF C#获取父用户控件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 精美插图! :)

标签: c# wpf user-controls


【解决方案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);
    
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      • 2010-09-23
      • 2018-01-31
      相关资源
      最近更新 更多