我从我的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
?或者通过添加事件“在其他窗口中按下按钮1”?
无论哪种方式,任何人都知道如何写它?提前谢谢!
答案 0 :(得分:4)
一种解决方案是在构造函数中为父窗口提供父窗口,然后它可以调用其父方法:
resize
答案 1 :(得分:2)
嗯,有很多方法,从它的外观来看,你没有去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()
{
//
}
}
}