MVVM死在Windows 8商店应用程序中吗?

Pou*_*sen 11 .net mvvm mvvm-light microsoft-metro

我已经开始学习Windows 8商店应用程序了.

我记得早些时候从Silverlight和WPF编程中人们改编了MVVM概念,现在我不确定我是否应该使用我当时学到的东西.

我添加了对GalaSoft.MvvmLight的引用并创建了一个ViewModel并将其添加到我的xaml中,如下所示:

DataContext="{Binding Source={StaticResource Locator}, Path=Welcome}"
Run Code Online (Sandbox Code Playgroud)

看起来Microsoft在LayoutAwarePage中包含了某种ModelView实现:

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
    // TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"]
    //  DefaultViewModel["WelcomeTiles"] = WelcomeTiles;
}
Run Code Online (Sandbox Code Playgroud)

如果设置了以下datacontext,则可以访问该文件.

<DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" />
Run Code Online (Sandbox Code Playgroud)

所以现在我不确定是否应该创建ModelViews,因为我记得它们,使用MVVMLight或只是将代码隐藏文件中的数据添加到DefaultViewModel.

两国人民的经历是什么?我刚刚开始,我的下一个目标是在GridView中单击项目时添加处理程序 - 以上哪个路径将以简单的方式执行此操作?

Col*_*inE 15

不,MVVM永远不会死!

Model-View-ViewModel是一种设计模式,因此它不依赖于特定的框架或实现.但是,它是一种UI设计模式,最方便与支持数据绑定的UI框架一起使用.

Windows 8 Metro应用程序包括XAML和一个与Silverlight和WPF非常相似的绑定框架.因此,MVVM是管理代码的绝佳选择.

LayoutAwarePage此博客文章中描述了您发现的代码.通过提供各种存根实现,尝试使Windows 8 Metro应用程序开发更容易.该页面包含一个DefaultViewModel可观察字典.

就个人而言,我不会用它!