WPF 关闭子窗口 - 关闭父窗口
我有与提到的完全相同的示例 此处。 快速得出结论:当最后一个子窗口关闭时,主窗口也关闭。
我的问题:我无法使用所描述的解决方案解决我的问题。我无法制作一个发生这种情况的程序。仅在我的一项较大的项目中。也许有人有想法或知道任何进一步的步骤。
感谢您的阅读 - Thomas
根据要求,这里有一些代码: 这是主窗口中的部分:
bool editAfterSearch = false;
Movie selectedMovie = (Movie)this.listView.SelectedItem;
Movie backup = (Movie)selectedMovie.Clone();
if (new OnlineSearchWindow().EditMovieViaOnlineSearch(ref selectedMovie, out editAfterSearch))
{
this.coverFlow.Update(selectedMovie);
}
这是子窗口中的部分:
public bool EditMovieViaOnlineSearch(ref Movie preset, out bool editAfter)
{
this.exitWithOk = false;
this.editMovieAfterSearch = false;
this.tbx_SearchTerm.Text = preset.Title;
this.linkedMovie = preset;
this.ShowDialog();
editAfter = editMovieAfterSearch;
if (this.exitWithOk)
{
this.linkedMovie.CloneOnlineInformation(ref preset);
preset.Bitmap = this.linkedMovie.Bitmap;
return true;
}
else
{
return false;
}
}
i have the pretty same sample as mentioned here.
Fast concluded: MainWindow closes when the last childwindow is closed.
My Problem: I couldn't solve my problems with the described solutions. I can't produce a program where it als takes place. Only in one of my bigger progs. Maybe someone has an idea or knows any further steps.
Thanks for reading - Thomas
As requested here's a bit of code:
This is the part in the MainWindow:
bool editAfterSearch = false;
Movie selectedMovie = (Movie)this.listView.SelectedItem;
Movie backup = (Movie)selectedMovie.Clone();
if (new OnlineSearchWindow().EditMovieViaOnlineSearch(ref selectedMovie, out editAfterSearch))
{
this.coverFlow.Update(selectedMovie);
}
And that's the part of the ChildWindow:
public bool EditMovieViaOnlineSearch(ref Movie preset, out bool editAfter)
{
this.exitWithOk = false;
this.editMovieAfterSearch = false;
this.tbx_SearchTerm.Text = preset.Title;
this.linkedMovie = preset;
this.ShowDialog();
editAfter = editMovieAfterSearch;
if (this.exitWithOk)
{
this.linkedMovie.CloneOnlineInformation(ref preset);
preset.Bitmap = this.linkedMovie.Bitmap;
return true;
}
else
{
return false;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试使用
App.xaml.cs
的ShutDownMode
属性。这 3 个值分别是OnMainWindowClose
、OnLastWindowClose
和OnExplicitShutdown
,默认为OnLastWindowClose
Try playing with the
ShutDownMode
property of yourApp.xaml.cs
. The 3 values areOnMainWindowClose
,OnLastWindowClose
, andOnExplicitShutdown
, and the default isOnLastWindowClose
您可以尝试将子窗口的
allowShutDown
设置为false
,然后显示主窗口。我假设您首先将主窗口的可见性设置为隐藏
。allowShutDown
将是您自己的属性,您可以设置该属性以使您必须处理opening
事件。you can try setting the child window's
allowShutDown
tofalse
and then show the mainwindow. I'm assuming you will start with mainwindow's visibility set tohidden
.The
allowShutDown
will be your own property which u can set to enable you have to handle theclosing
event.