91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

wpf中mvvmlight的使用方法

發布時間:2020-06-10 13:14:28 來源:億速云 閱讀:365 作者:元一 欄目:軟件技術

簡介

WPF(Windows Presentation Foundation)是微軟推出的基于Windows 的用戶界面框架,屬于.NET Framework 3.0的一部分。它提供了統一的編程模型、語言和框架,真正做到了分離界面設計人員與開發人員的工作;同時它提供了全新的多媒體交互用戶圖形界面。

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里也會隨之更新內容

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

裕民县| 阿尔山市| 天峻县| 惠水县| 河北区| 通江县| 噶尔县| 乌鲁木齐市| 若尔盖县| 鄂州市| 鸡东县| 德格县| 明溪县| 辛集市| 高尔夫| 泸州市| 铜鼓县| 胶州市| 朝阳县| 洪江市| 克东县| 洪雅县| 高邑县| 通河县| 佛冈县| 隆安县| 定西市| 宁蒗| 元氏县| 建阳市| 新乡县| 田阳县| 宣城市| 鲁山县| 石首市| 庆云县| 东台市| 金湖县| 桦甸市| 象州县| 乌鲁木齐市|