2016-07-11 8 views
3

私はIDialogServiceを実装中です。これはViewを知らない私のViewModelから呼び出されます。私のViewModelに関連付けられたビューのオーナーを探します

オーナーShowDialogに与えることを推測する最良の方法はありますか?

どのビューがどのViewModelにバインドされているかを登録することを避けることができれば嬉しいです。

私はPrism(v6)を使用しています。

+0

;'を? – Jose

+0

@キレネンコ私はそれについて悩んでいますが、MainWindowが新しいウィンドウを開き、このウィンドウがダイアログを開くと、それは新しいウィンドウに対してモーダルではありませんか? – J4N

+1

はい、私はそれが 'MainWindow'に対してモーダルであると思います。おそらく、あなたは 'Application.Current.Windows.OfType ().SingleOrDefault(x => x.IsActive);' – Jose

答えて

5

あなたはこれを試すことができますどのように `window.Owner = Application.Current.MainWindowについて

window.Owner = Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive); 
+1

ありがとうございます。私はちょうど別のケースを追加しました(ウィンドウがアクティブでない場合、 "最初の"非アクティブを取るように)、または全くウィンドウがない場合は、ただnullを返します。 – J4N

+0

また、デバッグ時に注意してください。私は主なアクティブなウィンドウがデバッガだったので、いくつかの失敗を覚えています。 – Jose

関連する問題