欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:WPF —— MVVM架構(gòu)

柚子快報激活碼778899分享:WPF —— MVVM架構(gòu)

http://yzkb.51969.com/

?1 什么是MVVM?

MVVM是一種軟件架構(gòu)模式,它將應(yīng)用程序分為三個層次 model(數(shù)據(jù)模型),view(視圖),viewmodel(視圖模型)

model:表示應(yīng)用程序當(dāng)中數(shù)據(jù)和業(yè)務(wù)邏輯,通俗來說就是對象。例如學(xué)生的姓名和年齡等放到一個class里面,作為一個對象 view:就是xaml文件,處理用戶交互和展示數(shù)據(jù)的 交互就是事件click,展示就是數(shù)據(jù)綁定等 viewmodel:數(shù)據(jù)和頁面之間的橋梁,可以處理一些ui邏輯,也可以處理數(shù)據(jù)綁定,可以執(zhí)行ui界面的命令(類似于事件) 也可以處理ui界面事件。 三者之間的關(guān)系 view對應(yīng)一個viewmodel,一個viewmodel對應(yīng)N個model, mvvm核心特點數(shù)據(jù)驅(qū)動視圖,通過修改數(shù)據(jù)達(dá)到更新界面的效果?

2 MVVM和WPF關(guān)系?

WPF帶來的技術(shù)有數(shù)據(jù)綁定,Binding(綁定)、依賴屬性、RoutedEvent(路由事件) 、Command指令 DataTemplate數(shù)據(jù)模版、ControlTemple控件模版等技術(shù) 這些技術(shù)就可以實現(xiàn)mvvm設(shè)計需求。

3 MVVM優(yōu)勢?

1.降低view和model之間的耦合度。 2.提高代碼的重用性和可維護(hù)性。 3.簡化了單元測試? 4.支持雙向綁定,數(shù)據(jù)可以更改界面,界面更新也會影響數(shù)據(jù) 5 利用wpf里面強大的特性

4 wpf實現(xiàn)mvvm設(shè)計模式 需要知識點

??1INotifyPropertyChanged,我們在使用Binding綁定數(shù)據(jù)時候,通過修改數(shù)據(jù)不會達(dá)到界面更新的效果,原因

就是在數(shù)據(jù)變化沒有發(fā)出通知,所以可以這個接口檢查到屬性變化之后發(fā)出通知。

? ?2ICommand:wpf一種機制,類似于事件綁定,但是又和事件綁定有區(qū)別, ? ?例如有幾個頁面需要綁定點擊的時候關(guān)閉窗體的功能,如果是采用事件綁定,可以在每一個頁面添加綁定, ? 命令可以寫在其他類里面,由不同窗體進(jìn)行調(diào)用 ? 事件綁定具有局限性, ? 命令系統(tǒng)內(nèi)置一部分的命令 ,內(nèi)置的指令有復(fù)制 粘貼、剪切等指令 也可以通過ICommand創(chuàng)建一個命令

創(chuàng)建類繼承INotifyPropertyChanged

public partial class MainWindow : Window, INotifyPropertyChanged

/2實現(xiàn)接口方法

public event PropertyChangedEventHandler PropertyChanged;

3 定義屬性在set調(diào)用方法,發(fā)出通知

private string name = "喬峰";

public string Name1

{

get

{

return name;

}

set

{

name = value;

PropertyChanged(this, new PropertyChangedEventArgs("Name1"));

}

}

public bool Sex { get;set; } = true; //屬性的更改不會觸發(fā)界面更新

private ObservableCollection names = new ObservableCollection { "喬峰", "段譽", "虛竹" };

public ObservableCollection Names {

get

{

return names;

}

set

{

names = value;

PropertyChanged(this, new PropertyChangedEventArgs("Names"));

}

}

Button的事件

private void f1(object sender, RoutedEventArgs e)

{

Name1 = "李四"; //可以達(dá)到界面更新的目的

Sex = false; // 不可以達(dá)到界面更新的目的

Names.Add("王大拿");// 數(shù)組里面是有的,不可以達(dá)到界面更新的效果

// List添加等操作不可以達(dá)到界面更新的效果.,把集合定義成List改成ObservableCollection這種類型

}

效果圖如下

更新數(shù)據(jù)前

更新數(shù)據(jù)后

柚子快報激活碼778899分享:WPF —— MVVM架構(gòu)

http://yzkb.51969.com/

參考鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19258366.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄