繁体   English   中英

从“外部”方法后台工作程序(MVVM C#应用程序)更新ShowMessageAsync(MahApps)值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM