【问题标题】:Invoking a method in a class C#在 C# 类中调用方法
【发布时间】:2016-03-24 00:26:45
【问题描述】:

我正在使用 C# 和 XMAL/WPF 编写我的第一个应用程序。

有一个 MainWindow.xml 有一个框架。然后我添加了新页面(page1.xaml 和 page2.xaml)。

MainWindow.xaml 最初加载 page1 的内容。 Page1 上有导航到 Page2 的按钮。

我想在 Page2 上运行几行代码。这是我遇到问题的地方。 如果我在 Page2 中创建一个方法并调用它(外部构造函数,就在它之后),它就不起作用。

我得到的错误如下。

我必须在 Page2 构造函数中调用它才能执行;但是,代码在单击 Page1 中的按钮后立即运行。

它可以工作,但窗口仍然显示第1页,并在执行命令后导航到第2页。

我希望先加载 Page2,然后执行以下行:

// button on page1
private void nextButton_Click(object sender, RoutedEventArgs e)
        {
            Page2 p2= new Page2();
            this.NavigationService.Navigate(p2);
        }

如果我在构造函数之外添加代码(就在构造函数之后) 我收到以下错误:

类、结构或接口成员中的标记“while”无效 声明

【问题讨论】:

    标签: c# forms navigation frame wpf


    【解决方案1】:

    你可以试试这个:

    // add this line to your page2 class constructor
    this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
    

    那么,

     void MainWindow_Loaded(object sender, RoutedEventArgs e)
     {
         while(true)
         { // any loop you want
         }
    
     }
    

    【讨论】:

    • 感谢@deeiip 它有效。但是MainWindow_Loaded 中的命令在 page2 加载之前执行。我想加载page2,所以可以看到page2的内容,然后执行命令。现在,它等到所有命令都执行完毕,然后显示 page2 内容。
    猜你喜欢
    • 2016-02-14
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    相关资源
    最近更新 更多