WPF MVVM從入門到精通2 實現乙個登入視窗

2021-10-01 11:32:45 字數 2983 閱讀 9480

wpf mvvm從入門到精通2:實現乙個登入視窗

我們究竟要做乙個怎樣的東西呢?直接上圖:

這看起來比較簡單,但把這個登入視窗做完,mvvm的入門就基本完成了。(為什麼登入介面要選擇性別這麼奇怪?無非是因為radiobutton的繫結也是乙個課題)

很多教程都是舉乙個小例子,讓人剛開始接觸的時候不知道如何在專案中使用。我這裡從乙個專案的開發角度簡單說說。

首先,這個視窗只是乙個專案眾多視窗中的其中乙個。為簡單起見,我們把專案檔案安排如下:

我們新建了乙個viewmodel資料夾,裡面按view的內容分資料夾,然後每個資料夾裡面包含了model類和viewmodel類。同時,viewmodel資料夾裡有乙個common資料夾,存放一些viewmodel需要共用的類。當然,如果讀者有更好的想法,完全沒必要按這個模式去做。

專案開始,我們不急著寫**,而是研究一下,在view裡面都包含了哪些資料。我列了乙個**:

中文名

型別

英文名

使用者名稱string

username

密碼string

password

性別int

gender

視窗初始化

view->viewmodel

wndinit

登入事件

view->viewmodel

loginclick

關閉行為

viewmodel->view

toclose

開啟新視窗

viewmodel->view

openwnd

前三項是顯而易見的,後面四項可能我們並不認為是一種資料。但在mvvm模式下,狹義的資料、事件、行為都變成了可以繫結的一種元素,也可以說是資料。

我們在前面提過,view和viewmodel改變狀態時,都是通過類似廣播的方式去做的。它們不會傳遞物件,而只會傳遞乙個名稱。所以,為了可以讓程式設計師和美工分頭行事,在命名方面,我們應該一開始就固定下來。

現在,我們可以開始開發model層了。model層的**如下:

namespace logindemo.viewmodel.login

///

/// 密碼

///

public string password

///

/// 性別

///

public int gender }}

model層的**就是這樣,非常單純,也沒有什麼新的知識。雖然我們後面會實現各種互動的邏輯,但model層的**已經不會改變了。

posted on

2019-12-14 16:57

不灬賴  閱讀(

...) 

編輯

收藏

我們究竟要做乙個怎樣的東西呢?直接上圖:

這看起來比較簡單,但把這個登入視窗做完,mvvm的入門就基本完成了。(為什麼登入介面要選擇性別這麼奇怪?無非是因為radiobutton的繫結也是乙個課題)

很多教程都是舉乙個小例子,讓人剛開始接觸的時候不知道如何在專案中使用。我這裡從乙個專案的開發角度簡單說說。

首先,這個視窗只是乙個專案眾多視窗中的其中乙個。為簡單起見,我們把專案檔案安排如下:

我們新建了乙個viewmodel資料夾,裡面按view的內容分資料夾,然後每個資料夾裡面包含了model類和viewmodel類。同時,viewmodel資料夾裡有乙個common資料夾,存放一些viewmodel需要共用的類。當然,如果讀者有更好的想法,完全沒必要按這個模式去做。

專案開始,我們不急著寫**,而是研究一下,在view裡面都包含了哪些資料。我列了乙個**:

中文名

型別

英文名

使用者名稱string

username

密碼string

password

性別int

gender

視窗初始化

view->viewmodel

wndinit

登入事件

view->viewmodel

loginclick

關閉行為

viewmodel->view

toclose

開啟新視窗

viewmodel->view

openwnd

前三項是顯而易見的,後面四項可能我們並不認為是一種資料。但在mvvm模式下,狹義的資料、事件、行為都變成了可以繫結的一種元素,也可以說是資料。

我們在前面提過,view和viewmodel改變狀態時,都是通過類似廣播的方式去做的。它們不會傳遞物件,而只會傳遞乙個名稱。所以,為了可以讓程式設計師和美工分頭行事,在命名方面,我們應該一開始就固定下來。

現在,我們可以開始開發model層了。model層的**如下:

namespace logindemo.viewmodel.login

///

/// 密碼

///

public string password

///

/// 性別

///

public int gender }}

model層的**就是這樣,非常單純,也沒有什麼新的知識。雖然我們後面會實現各種互動的邏輯,但model層的**已經不會改變了。

MakeFile從入門到精通 2

程式的編譯與連線 軟體的底層構造系統 1,程式儲存與執行 2,程式編譯和連線 3,程式檔案的分類 4,動態庫與靜態庫 計算機基本都遵循馮諾伊曼結構,cpu 記憶體ram ddr記憶體條 固態硬碟 嵌入式就是flash nor nand 一般手機平板呼叫 pc 伺服器基本都遵循。主要是這三塊組成。一般...

電源拓撲從入門到精通 2

from 上期答案揭曉 答案上圖 c 下圖 a 小夥伴們答對了嗎?ytdfwangwei 我的笨辦法 source,源的意思,就是提供電流。所以,只要是電流流出,就是source。不知道是否正確?完全正確。sink 和 source 是在電路中經常出現的兩個詞。source 源,比如電源,源總是提供...

Nginx從入門到精通

1 nginx配置檔案載入機制 採用nginx s reload命令載入nginx的配置檔案,master程序讀取配置檔案,建立新的worker程序,向老的worker程序傳送shutdown命令。老的worker程序不再接受新的請求,待老的請求處理完成後,就會停掉。2 location匹配機制 當...