1.什么是MVVM?
成都創(chuàng)新互聯(lián)公司從2013年開始,先為邯山等服務(wù)建站,邯山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為邯山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。MVVM是Model、View、ViewModel的簡(jiǎn)寫,這種模式的引入就是使用ViewModel來(lái)降低View和Model的耦合,說(shuō)是降低View和Model的耦合。也可以說(shuō)是是降低界面和邏輯的耦合,理想情況下界面和邏輯是完全分離的,單方面更改界面時(shí)不需要對(duì)邏輯代碼改動(dòng),同樣的邏輯代碼更改時(shí)也不需要更改界面。同一個(gè)ViewModel可以使用完全不用的View進(jìn)行展示,同一個(gè)View也可以使用不同的ViewModel以提供不同的操作。
2.項(xiàng)目目錄
從上面的圖我們可以看出,處理事務(wù)的文件有幾個(gè)類型:View,ViewModel,Command,Property,Model,這個(gè)幾個(gè)類型的圖片
最下面的ViewModelBase.cs就是Property,對(duì)應(yīng)處理觸發(fā)屬性發(fā)現(xiàn)變化的事務(wù)。
3.代碼分析:
a):入口 App.xaml
private void Application_Startup(object sender, StartupEventArgs e) { //創(chuàng)建一個(gè)ViewModel; MainViewModel mode = new MainViewModel(); //初始化ViewModel內(nèi)容 mode.ItemDatas = new ObservableCollection(); mode.ItemDatas.Add(new ItemData { Title = "TST", Content = "sss" }); mode.ItemDatas.Add(new ItemData { Title = "2TST", Content = "2sss" }); //初始化View; MainWindow main = new MVVMGridDemo.MainWindow(); //把ViewModel綁定到View上 main.DataContext = mode; //顯示窗口 main.Show(); }
b):MainWindow窗口ViewModel;
view代碼
viewmodel代碼
public class MainViewModel : ViewModelBase { private ObservableCollection _itemdatas;//view 中Name為Texxt的值在這里實(shí)現(xiàn) private string _texxt; public string TexxT { get { return this._texxt; } set { this._texxt = value; OnPropertyChanged("TexxT"); } }//view中itemsourse 為ItemData的數(shù)據(jù)綁定; public ObservableCollection ItemDatas { get { return _itemdatas; } set { this._itemdatas = value; OnPropertyChanged("ItemDatas"); } }//修改按鈕點(diǎn)擊事件在這里實(shí)現(xiàn) public ICommand ButtonClick { get { return new ActionCommand(p => BClick(p)); } } private void BClick(object obj) { DataGrid box = (DataGrid)obj; ItemDatas[0].Title = TexxT;//刷新dataGrid box.Items.Refresh(); } }
全部源代碼:https://github.com/servucn/MVVMGridDemo
交流地址:http://www.ucasp.net/wpfresources/mvvmgriddemo.shtml
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。