Ste*_*ere 6 silverlight-4.0 mvvm-light
我有关于MVVM灯的以下问题:什么"驱动"UI?我看到我可以在每个View中显示一个ViewModel; ViewLocator处理所有ViewModel(根据我的理解用于缓存).但是推动用户界面的是什么?
如果我在ViewModel中定义了一个名为"ShowDetail"的Command; 我是否必须编写在ViewModel中显示此View的代码?
这有什么例子吗?谢谢!
MVVM模式本身没有特定于视图之间导航的任何内容.虽然,在几个框架中有许多解决方案.最常见的解决方案是使用某种控制器"编排"主视图,或使用"主 - 细节"方法进行子视图.
一些有趣的解决方
在 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)