[英]Updating ShowMessageAsync (MahApps) Value From “External” Method Background worker (MVVM C# app)
在我的方法“ sendconfig_dowork(object sender,DoWorkEventArgs e)”中,我想向用户显示完成后的窗口。
当方法是“非外部的”我定义这样,并且可以正常工作:
var window = System.Windows.Application.Current.Windows.OfType<MetroWindow>().FirstOrDefault();
if (window != null)
await window.ShowMessageAsync(@"Operation successed", @"Operation successed");
但这在“外部”方法(如后台工作程序)中不起作用。 我在弄清楚应该如何定义内部幕僚工作时会遇到麻烦? 还是定义它的最佳方法是什么?
程序是用C#WPF和MVVM politic编写的。 谢谢! 如有任何疑问,请询问。
您必须在UI线程中调用ShowMessageAsync
。 例如,如果您面向.NET Framework 4.5,则可以使用应用程序的调度程序:
var window = System.Windows.Application.Current.Windows.OfType<MetroWindow>().FirstOrDefault();
if (window != null) {
Application.Current.Dispatcher.InvokeAsync(() => window.ShowMessageAsync(@"Operation successed", @"Operation successed");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.