我是否需要Silverlight中的MVVM-light视图控制器?

Ste*_*ere 6 silverlight-4.0 mvvm-light

我有关于MVVM灯的以下问题:什么"驱动"UI?我看到我可以在每个View中显示一个ViewModel; ViewLocator处理所有ViewModel(根据我的理解用于缓存).但是推动用户界面的是什么?

如果我在ViewModel中定义了一个名为"ShowDetail"的Command; 我是否必须编写在ViewModel中显示此View的代码?

这有什么例子吗?谢谢!

rob*_*tos 5

MVVM模式本身没有特定于视图之间导航的任何内容.虽然,在几个框架中有许多解决方案.最常见的解决方案是使用某种控制器"编排"主视图,或使用"主 - 细节"方法进行子视图.

一些有趣的解决方


rob*_*tos 1

在 MVVM 中,“驱动”视图的是数据绑定。您可以通过将视图的 DataContext 设置为指向视图模型来将视图连接到 ViewModel。

简单示例(使用 MVVM Light):

MyViewModel.cs

public class MyViewModel : ViewModelBase
{
   (...)
   private string _myProperty;
   public string MyProperty {
       get { return _myProperty; }
       set {
           _myProperty = value;
           RaisePropertyChanged("MyProperty");
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

MyView.xaml.cs

void MyView() {
   DataContext = new MyViewModel();
}
Run Code Online (Sandbox Code Playgroud)

MyView.xaml

<TextBlock Text="{Binding MyProperty}" />
Run Code Online (Sandbox Code Playgroud)