我从wpf应用程序的页面启动一个窗口,当我在子窗口中按下按钮时,我想调用一个函数

这是调用窗口的页面:

namespace AppWpf10
{
    public partial class Prepare : System.Windows.Controls.Page
    {
        private void button_Click(object sender, RoutedEventArgs e)
        {
            Choice win2 = new Choice();
            win2.Show();
        }

        public void DoStuff()
        {
            //CODE THAT DOES STUFF
        }
    }
}


窗口启动:

namespace appWpf10
{
    public partial class Choice : Window
    {
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
    }
}


因此,我希望在另一个窗口中按DoStuff()时调用button1。我该怎么办?通过子窗口在DoStuff()中调用button1_Click?还是通过添加事件“在另一个窗口中按下了button1”?

无论哪种方式,谁知道怎么写?提前致谢 !

最佳答案

好吧,有很多方法,从外观上看,您并没有走MVVM路线,这很好。因此,在您的特定情况下,一种简单的方法是,在您实际创建子项时,给您命名该按钮,从而订阅该子项的按钮单击事件:

namespace AppWpf10
{
    public partial class Prepare : System.Windows.Controls.Page
    {
        private void button_Click(object sender, RoutedEventArgs e)
        {
            Choice win2 = new Choice();
            win2.Show();
            win2.button1.Click += clickEventHandler;
        }

        private void clickEventHandler(object sender, RoutedEventArgs e)
        {
            DoStuff();
        }

        public void DoStuff()
        {
            //
        }
    }
}

关于c# - 在其他窗口中单击按钮时调用函数(WPF应用程序),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32091021/

10-12 02:03