子ウィンドウを作成し、ビューモデルからの結果を処理する必要があるとします。
これには、コード ビハインドを使用できます。
例:
// Code Behind
class SampleView : ISampleView
{
public void CreateChildWindow(params string [] args)
{
var childWIndow = ChildViewFactory.Create(args);
childWindow.Closed +=
() => {
if(childWindow.Result)
{
this.ViewModel.DoSomething();
}
else
{
this.ViewModel.DoSomethingElse();
}
};
childWindow.Show();
}
}
// ViewModel
class SampleViewModel
{
private void OnSomeCommandHandler()
{
((ISampleView)this.View).CreateChildWindow(new []{""});
}
public void DoSomething()
{
}
public void DoSomethingElse()
{
}
}
このアプローチはどこにも見たことがありませんが、かなり論理的であるようです。
それ以来、私は疑問に思っていました-このパターンを使用して考えられる欠点は何ですか?