需要知道非模式窗口何时关闭

1 c# wpf window modal-dialog

我已经从parentWindow(非模式)打开了childwindow - 实现“等待”以便parentWindow知道childWindow何时关闭的最佳方法是什么?由于几个原因,我无法使用 showDialog()。我尝试了 while 循环(测试 childWindow 的可见性属性),但它只是中断(没有例外 - 但只是不打开 childWindow)。是多线程的情况吗?

ken*_*n2k 5

实现“等待”以便父窗口知道子窗口何时关闭的最佳方法是什么?

您可以使用事件,以便在子窗口关闭时通知父窗口。例如,有 Closed 事件

Window childWindow = new ....
childWindow.Closed += (sender, e) =>
    {
        // Put logic here
        // Will be called after the child window is closed
    };
childWindow.Show();
Run Code Online (Sandbox Code Playgroud)

  • 实际上, `(object sender, EventArgs e) =>` 它完全有效;) 通常不会这样写,因为它不是必需的:C# 3.0(不适用于 C# 2.0)编译器(以及 Visual Studio for Intellisense)是足够聪明,可以进行所谓的类型推断。这允许编译器根据上下文了解参数的类型。您可以尝试在以下 MSDN 文章中搜索类型推断:http://msdn.microsoft.com/en-us/library/orm-9780596527570-03-04.aspx (2认同)