在我的WPF项目中,我有一个事件subWindow.Closed
,它基本上在关闭时更新我的主窗口。此事件仅适用于原始subWindow
因此即使我写this.subWindow = new SubWindow();
如果我再次打开和关闭子窗口,它也不会再次触发。简单的答案似乎是使用subWindow.Closing
取消关闭并隐藏它,但如果可以的话,我也想使用subWindow.ShowDialog
使主窗口无法使用,这与隐藏子窗口不起作用。
现在我的代码看起来像这样:
public SubWindow subWindow = new SubWindow();
public MainWindow()
{
subWindow.Closed += (s, EventArgs) =>
{
//main window update code
subWindow = new SubWindow(); //this lets me ShowDialog but wont get caught by the event handler
}
}
public void EditButton_Click(object sender, RoutedEventArgs e)
{
this.subWindow.ShowDialog();
//setting subWindow here would let me always ShowDialog but the event only triggers once
}
从MainWindow
的构造函数中删除所有内容,并将所有内容放入Button.Click
事件处理程序:
public void EditButton_Click(object sender, RoutedEventArgs e)
{
subWindow = new SubWindow();
subWindow.Closed += (s, EventArgs) =>
{
//main window update code
};
this.subWindow.ShowDialog();
}