WPF MVVM 多個不同Model例項繫結

2021-08-20 19:21:48 字數 1697 閱讀 7621

1.建立wpf應用,並建立如下專案

其中usercontrol要實現命令的繫結,我這裡是直接使用nuget安裝system.windows.interactivity.wpf這個包。並且引用程式集presentationcore.dll(不引用該程式集會是的有些我們需要類無法識別,例如commandmanager)。

2.建立控制項usercontrol。本文只為了完成同一控制項型別繫結不同的model例項,故只簡單的寫了乙個名稱和密碼框。**如下:

name:

password:

確認

3.再主介面新增兩個這樣的使用者控制項。

顯示如下:

分別命名第乙個與第二個控制項的名稱為view1與view2。

3.modelview的建立

view與viewmodel的構建原理這裡就不詳細介紹,這裡主要是完成繫結不同的model。直接給出**

public class uservm:inotifypropertychanged

public string name

set}

public string password

set}

public icommand sureclick => new command(sure);

private void sure()

public event propertychangedeventhandler propertychanged;

}

應該能注意到,uservm的建構函式是需要傳入乙個model的,這裡就實現了不同的model構建不同的viewmodel。然後建立乙個單例的類來例項化viewmodel:

public class vminstance

public uservm uservm2

public vminstance()

public static vminstance getvminstance()

}

而model也是用這種方式來例項化:

public class modelinstance

= new usermodel();

public usermodel usermodel2 = new usermodel();

private modelinstance()

public static modelinstance getvminstance()

4.最終的繫結

直接在mainwidow建構函式那繫結

public partial class mainwindow : window

}

f5執行

當然也可以不採用這種方式,你可以通過繼承的方式來繫結,獲得不一樣的viewmodel拿來繫結view。

多 bonding 使用不同 mode 方法

環境,多網絡卡,多 bond 裝置,需要使用不同的工作方式,如下 eth0 eth1 bond0 mode 0 active backup eth2,eth3 bond1 mode 1 balance rr 參考 root hh yun puppet 129021 kickstarts yum in...

多個網域名稱,一台主機,多個專案,不同網域名稱對應不同專案

多個網域名稱,一台主機,多個專案,不同網域名稱對應不同專案相信這個問題對於大家會比較棘手,一開始想到的就是使用多個tomcat伺服器,但是你只有乙個80埠啊!不要急,先分析一下,想到這裡我想肯定會有人想到用 判斷,然後進行跳轉,是的你可以單獨做乙個專案放在80埠沒然後進行判斷跳轉,但是這樣做太麻煩!...

不同頻率閃爍多個LED燈

include reg52.h 包含標頭檔案,一般情況不需要改動,標頭檔案包含特殊功能暫存器的定義 sbit led0 p1 0 用sbit 關鍵字 定義 led到p1.0埠,led是自己任意定義且容易記憶的符號 sbit led1 p1 1 sbit led2 p1 2 sbit led3 p1 ...