C# 从帧调用父函数

C# 从帧调用父函数,c#,wpf,C#,Wpf,我有一个WPF应用程序Im建设与设计师。在它里面我有一个框架,我正在加载一个页面 老实说,我迷路了。由于缺乏指导和能力,我希望有人能帮助我理解如何做我想做的事情 在页面中,我需要调用一个公共方法“public void updatext”。我知道这已经做了一百万次了,但我就是不明白。我的大多数搜索也会提取web/javascript结果 我曾经在winform环境中用两个窗口做过类似的事情 public partial class setupApp : Form { p

我有一个WPF应用程序Im建设与设计师。在它里面我有一个框架,我正在加载一个页面

老实说,我迷路了。由于缺乏指导和能力,我希望有人能帮助我理解如何做我想做的事情

在页面中,我需要调用一个公共方法“public void updatext”。我知道这已经做了一百万次了,但我就是不明白。我的大多数搜索也会提取web/javascript结果

我曾经在winform环境中用两个窗口做过类似的事情

 public partial class setupApp : Form
    {
        private Form1 m_parent;


        public setupApp(Form1 frml)
        {
            InitializeComponent();
            m_parent = frml;

        }
虽然上面的代码在winform中工作,使我能够从父窗口定位所有公共函数,但我似乎无法将其转换为WPF

我试过了

public partial class Childpage: Page
        {
            private MainWindow m_parent;


            public Childpage(MainWindow mw1)
            {
                InitializeComponent();
                m_parent = mw1;

            }
这不会在生成时抛出错误,但无法在调试器启动时立即中断模式。我也不知道这个错误意味着什么

在类型“”上找不到匹配的构造函数

为什么C后端代码不能翻译?有更好的方法吗?

我认为您可以在xaml代码中设置帧的源属性,如下所示:

SampleFrame.NavigationService.Navigate(new SamplePage(this));
在这种情况下,您需要在页面中添加一个无参数构造函数

public partial class SamplePage
{
    private MainWindow _parentWindow;

    public SamplePage()
    {
        InitializeComponent();
    }

    public SamplePage(MainWindow parentWindow) : this()
    {
        _parentWindow = parentWindow;
    }
}
但是如果您想将父窗口传递给子页面,您可以在代码隐藏中设置框架内容。像这样:

SampleFrame.NavigationService.Navigate(new SamplePage(this));

在这种情况下,您不需要使用无参数构造函数。

如何实例化页面?我这样设置帧源是完全正确的。感谢您指出参数就是问题所在。我想我的理解是,这两项声明相互矛盾。谢谢你的指导