2016-04-25 11 views
0

「sendconfig_dowork(オブジェクト送信者、DoWorkEventArgs e)」では、終了時にウィンドウも表示したい。ShowMessageAsync(MahApps)の値を「外部」メソッドから更新するバックグラウンドワーカー(MVVM C#アプリ)

方法は「外部ではない」であるとき、私はそのように定義さと作業罰金:

var window = System.Windows.Application.Current.Windows.OfType<MetroWindow>().FirstOrDefault(); 
       if (window != null) 
        await window.ShowMessageAsync(@"Operation successed", @"Operation successed"); 

しかし、これはバックグラウンドワーカーのような「外部」の方法で作業されていません。私は内部のバックグラウンドワーカーを動かすことを定義する方法を考え出すのに問題がありますか?または、それを定義する最良の方法は何ですか?

プログラムはC#WPFとMVVMの政治で書かれています。ありがとう!質問があればお尋ねください。

答えて

0

UIスレッドでShowMessageAsyncに電話する必要があります。例えば。

var window = System.Windows.Application.Current.Windows.OfType<MetroWindow>().FirstOrDefault(); 
if (window != null) { 
    Application.Current.Dispatcher.InvokeAsync(() => window.ShowMessageAsync(@"Operation successed", @"Operation successed"); 
} 
の場合、アプリケーションのディスパッチャを使用できます。
関連する問題