wpf中mvvmlight的使用方法

简介

WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

专注于为中小企业提供成都网站制作、成都做网站、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业宜春免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点
1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
2. 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
3. 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xaml代码。
mvvmlight(nuget 下载最新版)

4. 可测试。界面素来是比较难于测试的,测试可以针对ViewModel来写。

vs2015

一、强行关闭

在我的程序中跑了一个新线程
Thread.Start()

关闭wpf窗口时,线程里的程序没跑完,则线程继续在后台跑
那就在主窗体的.cs文件中加入

protected override void OnClosed(EventArgs e)
{
 base.OnClosed(e);
 Environment.Exit(0);
}

二、项目导入mvvmlight及问题

在要用到mvvmlight的工种中添加mvvmlight之后
项目中会多出一个ViewModel文件夹
里面有两个文件:
MainViewModel.cs
ViewModelLocator.cs

而原先的App.xaml里也会多出几行东东:

<Application x:Class="WpfApp2.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApp2" StartupUri="View/WelcomeView.xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" d1p1:Ignorable="d" xmlns:d1p1="http://schemas.openxmlformats.org/markup-compatibility/2006">
  <Application.Resources>
    <ResourceDictionary>
      <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" xmlns:vm="clr-namespace:WpfApp2.ViewModel" />
    </ResourceDictionary>
  </Application.Resources>
</Application>

即上面代码中的

<ResourceDictionary>

标签里的内容
这个先不管
直接运行一下,会报错
wpf中mvvmlight的使用方法
在ViewModel文件夹下的ViewModelLocator.cs里会报错
这个错误通过搜索发现了解决方法:
将这行报错的引用注释掉或删掉,添加另一行引用
wpf中mvvmlight的使用方法

using CommonServiceLocator;

这样就不报错了

三、mvvmlight框架的ObservableObject

类继承ObservableObject
当然要引用相应的包

using GalaSoft.MvvmLight;

这个按我的理解就是继承了这个类,属性的变化就可响应,并且从UI中反应出来
即属性有变动时,UI中也相应更新

在窗体的xaml.cs中,在构造函数里要定义数据绑定时的上下文

this.DataContext = ……;

在xaml文件里绑定

<TextBlock Text="{Binding Welcom.Introduction}" FontSize="30"></TextBlock>

开一个新线程,里面隔一定时间,给绑定的数据更新,这样在窗口中的TextBlock里也会随之更新内容

网站栏目:wpf中mvvmlight的使用方法
文章起源:https://www.cdcxhl.com/article6/jigpog.html

成都网站建设公司_创新互联,为您提供网站设计公司网站营销定制网站网站导航全网营销推广网站排名

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计