5

我一直在使用 MVVM 对我的 Windows 8 应用程序和 Windows 手机应用程序进行编程。我即将接触 MVVM Light,我只是想知道它们之间的区别是什么?我想 MVVM light 是 MVVM 的沙盒版本,带有 WPF 和 WinRT/WP8 开发。

有简单的答案吗?为什么要选择 MVVM Light 而不是 MVVM?

4

5 回答 5

16

没有“MVVM 已满”之类的东西。

MVVM是一种关于如何构建 UI、数据和业务逻辑的模式。

MVVM light是一个轻量级框架,支持您实现该模式。

顺便说一句:将鼠标悬停在您在问题中使用的标签上也会回答这个问题;-)

于 2013-03-20T15:43:45.700 回答
3

MVVM Light 旨在作为一个工具包(而不是框架;),它提供了一套组件,可帮助您根据 MVVM 模式编写应用程序。例如,MVVM Light 有一些库类,它们封装了重复的代码、加速和促进打字的片段、项目和项目模板以加速新应用程序的创建并避免浪费时间与基本的“接线”应用程序等

于 2013-03-20T16:54:45.063 回答
1

MVVM 代表模型视图视图模型。

MVVM Light 是由“Laurent Bugnion”组成的 - GalaSoft

http://mvvmlight.codeplex.com/

MVVM是一种企业应用开发模式,一种最佳实践。我们可以通过以下页面深入了解。

http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx

如果您想专门从事整个业务。独立于 Silverlight TextBox 等用户界面元素,我们需要应用 MVVM 模式。通过这种方式,我们将业务部分重用于其他客户端平台。比如Windows手机..

如果您了解 MVC,您可以将 Controller 重新采样为 ViewModel,但此 ViewModel 不包含您视图中对象的任何引用。你的虚拟机可能会抽象你的视图。

我认为 .NET 的 MVVM 模式应用程序应该了解这些技术;Commanding、CollectionViewSource 用于过滤排序操作、DataContext、Binding、INotifyPropertyChanged

于 2013-03-20T16:55:49.633 回答
1

我一直在使用两者的一种方式(明显地) - MVVM 是一种设计模式,我只是用来根据模式构建我的代码 - 所以本质上 MainWindow.xaml 位于视图文件夹中,MainWindow_ViewModel.cs 位于 VM 文件夹中,然后Model.cs 位于我的模型文件夹中。View 的 DataContext 是用 ViewModel 类设置的,用于接线。当然,MVVM 不仅仅是文件组织,还确保代码也是按照模式编写的(逻辑分离和所有应该按照模式实现的好东西)。这样做 - 不一定需要我参考 MVVM Light 库来执行上述操作。

当我想使用 Messenger.Default.Send(广播值)Messenger.Default.Register(在不同的 VM 中获取值)在多个 ViewModel 之间进行通信时,我特别使用 MVVM Light

如有必要,可以分享示例代码。希望有帮助。

于 2013-03-20T17:06:24.223 回答
1

MVVM Light 是 Galasoft 开发的 MVVM 模式工具包。因此 MVVM 是一种设计模式,MVVM Light 可以帮助您将其付诸实践。

于 2019-02-28T13:09:47.700 回答