我有很多这样的代码:
MyWindow window = new MyWindow(someParam, callingWindow)
MyWindow类包含如下内容:
public MyWindow.Processing()
{
` // Do processing
...
callingWindow.RefreshListBox(); // Listbox for example
}
是否有一个内置的方法来等待窗口的关闭。我希望能够在calingWindow的类中编写类似的内容:
await mywindowInstanceCloseEvent;
RefreshListBoxWhenWindowIsClosed();
我想知道是否有一种简单的方法可以“暂停”一个方法(无论它是否异步),直到一个特定的窗口关闭。
3条答案
按热度按时间ma8fv8wu1#
您可以使用
TaskCompletionSource
和Closed
事件来完成此操作用途:您可以像这样使用它:
如果希望窗口是模态的,可以将
Show
方法替换为ShowDialog
。如果要从窗口中获取结果,可以修改代码以适当地使用
TaskCompletionSource<Result>
。wj8zmpe12#
这取决于您的需要。如果您需要将窗口显示为模式对话框,请使用
Window.ShowDialog
。否则,您可以使用Window.Closed
事件。如果你想等待它,这里是一个good answer从@Athari。
t0ybt7op3#
谢谢你@Athari这是如此有用的使用它像showdialog在winui上:D也为创建飞溅窗口
我的代码为splashwindow使用您的答案