使用MVVMLight 开发 Windows 10 App(一)

        编者语 : Windows 10 给开发者带来了新的机遇,通过一次开发,一次编译,一个执行文件可以运行在PC , IoT, Mobile,Xbox, HoloLens,SurfaceHub等不同的终端上。上周在直播活动中,为大家带来了一个开发的开篇介绍,从今天起会连载Windows 10 开发的相关文章。

       使用MVVMLight 开发 Windows 10 App(一)_第1张图片


       MVVM Light是一个基于Model-View-ViewModel的轻量级框架,他可以为WPF,Silverlight,Xamarin,Uinversal Windows Platform App提供一个MVVM的模式实现。Windows 10 对于支持Windows 8.x PCL 的库都可以无缝地延续下来,所以MVVM Light也可以在UWP的开发中使用。

       再谈MVVM   

       MVVM 是一个设计模式,从传统的MVC,MVP模式下演变过来。MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点

1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
2. 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
3. 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xaml代码。
4. 可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。
      MVVM Light

      使用MVVMLight 开发 Windows 10 App(一)_第2张图片

      MVVM Light 不是MVVM 模式下唯一的第三方框架,有Prism/ FreshMVVM 等类似的。但是它是比较成熟的一个。MVVM Light对ViewModel, Command,消息传递进行了封装,方便开发人员调用,并整合了SimpleIoC的依赖注入方式。在MVVM Light中有几个基类比较重要,我粗略介绍一下。

       ViewModelBase :  你创建的ViewModel都基于这个类,它为你提供了设计模式下的数据展现方式,方便在Blend下针对数据呈现
                                     进行设计。

      RelayCommand :   为你的ViewModel提供了事件响应的方式。它基于ICommand。RelayCommand通过构造函数初始化Execute 和 CanExecute
                                     方法。
     
NavigationService: 这是一个跳转服务,对于页面跳转和返回起着重要作用。

      Messenger :  页面间传递消息和数据传递。

      在Windows 10 中使用MVVM Light

      1. 通过Nuget添加MVVM Light ,如图通过Nuget就可以找到MVVM Light的库,只要点击Install就可以安装了,它会把
          MvvmLightLibs也安装上

       
     
      2.  安装成功后,除了会为MVVMLight添加必要的引用外,还创建了ViewModel文件夹,自带了MainViewModel和ViewModelLocator两个类。
           ViewModelLocator主要为项目的依赖注入相关类和实例化相关类。
      

     3.  之后的事情是按照需要创建你的Model和相关的Service完成对应的数据逻辑操作。

    使用MVVMLight 开发 Windows 10 App(一)_第3张图片      

    4.  对于XAML的修改,你需要为XAML添加如下语句 ,通过这个来绑定相关的ViewModel
   <Page
    x:Class="UWPDemo.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:UWPDemo"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    DataContext="{Binding Main, Source={StaticResource Locator}}">
   
   5. 至于其他界面的操作就是按以往那样即可,当然你可以针对不同的设备进行界面调整。

   

   6. 最后就是运行了,偷笑虽然是一个简单列表但是起码跑起来了。

   
   
       
爽吧!一个好的架构都项目来说是一个非常好的保障,MVVMLight 就是你所需要的。我会不间断地连载相关Windows 10结合MVVM Light开发的文章,希望大家喜欢。

       点击下载示例

你可能感兴趣的:(windows,10,MVVM,light)