假设需要创建一个子窗口并处理来自某个视图模型的结果。
为此,我们可以使用后面的代码。
例子:
// 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()
{
}
}
我在任何地方都没有看到这种方法,但它似乎是相当合乎逻辑的。
既然我想知道 - 使用这种模式可能有哪些缺点?