我試圖學習MVVM,但我遇到了一些麻煩。我新來xaml和c#。wpf應用程序mvvm如何正確構建
我到目前爲止有:
一個
person
類,定義一個Person對象:姓名,年齡等信息一個模型類
people
,擁有私人鏈表(名單人),其中還包含方法如get
,remove
,add
並做一些計算viewmodel類,做投在代碼之後的xaml和模型之間進行/解析/轉換。
代碼文件
mainWindow.xaml.cs
後面的xaml,它監聽按鈕點擊等,並調用viewModel類中的方法,並執行一些簡單的綁定,如total.Content = objModelView.getTotal()
。
我沒有使用INotifyPropertyChanged
ObservableCollection
,仍然試圖環繞它我的頭。雖然我的程序做了我想要的,但我不確定如何更好地構建它。
基本上我有2個主要問題:
- 我在網上看到的例子,人們店/發起視圖模型的項目清單,我不應該保持模型的列表,而不是,這應該是所有的數據存儲的權利?
- 比方說,我假設將所有項目(在模型類的列表中)顯示在dataGrid上。現在在我的程序中:mainWindow.xaml.cs將檢測按鈕點擊,然後它要求viewModel將其存儲在模型中,如果沒有錯誤,那麼xaml後面的代碼將會執行
people_dataGrid.Items.Add(new person { name = newName, age = newAge, address = newAdd });
這是不好的做法嗎?不知道如何在這裏使用ObservableCollection,它可以以某種方式檢測我的模型類的列表中的更改,然後刪除並添加行到數據網格?
我一直在讀了整整一天,但我在這裏打,希望我能得到一些方向
您需要使用INPC和ObservableCollection,否則它不是MVVM。 MVVM應該在模型中完成所有的操作,INPC/INCC是View如何知道數據已經改變,並且屏幕需要更新。這聽起來像你實際上正在編寫一個MVP應用程序。 – Aron