これについてはしばらく考えていました...新しいウィンドウを開くビューモデルがそのビューの存在を認識していないことを念頭に置いて、別のビューモデルから新しいウィンドウ (ビューとビューモデル) を開くためのベスト プラクティスは何でしょうか (認識しているはずです)。
ありがとう。
ベストアンサー1
私は ViewModel コンストラクターを介して挿入されるアクション デリゲートを使用することを好みます。これにより、ユニット テスト中に簡単に検証できるようになります。
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
DataContext = new MainViewModel(() => (new Window()).Show()); // would be actual window
}
}
public class MainViewModel
{
private Action popupAction;
public MainViewModel(Action popupAction)
{
this.popupAction = popupAction;
}
public ICommand PopupCommand { get; set; }
public void PopupCommandAction()
{
popupAction();
}
}
public class SomeUnitTest
{
public void TestVM()
{
var vm = new MainViewModel(() => { });
}
}