私はMVVMを学ぼうとしていますが、何か問題があります。私はxamlとc#を初めて使っています。人物オブジェクトを定義wpf application mvvm正しく構造化する方法
person
クラス、::名前、年齢、その他の情報モデルクラス
people
は、プライベートのLinkedList(リストを所有している私がこれまで持っているものまた、
get
,,add
などのメソッドを含んでおり、いくつかの計算を行います。viewmodelクラス、キャストしていますxamlの背後にあるコードとモデルの間の変換/解析/変換
xamlの背後にあるコードファイル
mainWindow.xaml.cs
は、ボタンのクリックなどを聞き、viewModelクラスからメソッドを呼び出し、total.Content = objModelView.getTotal()
のような簡単なバインディングを行います。
私はまだそれのまわりで私の頭をラップしようとしている、INotifyPropertyChanged
ObservableCollection
を使用していませんでし。私のプログラムは私が望むことをしているが、私はそれをより良く構築する方法がわからない。
は基本的に私は2つの主要な質問がある:
人々は/はのviewmodel内の項目のリストを開始ストアところ、私はオンラインの例を参照してください- 、私はそれがどこである必要があり、代わりに、モデル内のリストを維持するべきではありませんすべてデータは正しく格納されますか?
- 私は、(モデルクラスのリスト内の)すべてのアイテムをdataGridに表示するとします。今すぐ私のプログラムで:mainWindow.xaml.csはボタンのクリックを検出し、それからモデルに格納するようにviewModelに依頼します。エラーがなければxamlはコードの後ろで行います
people_dataGrid.Items.Add(new person { name = newName, age = newAge, address = newAdd });
これは悪い習慣ですか?いけないObservableCollectionをここで使用する方法を取得、それは何とか私のモデルクラスのリストの変更を検出し、削除し、DataGridに行を追加することができますか?
私は一日のために読んでいるが、私はここで打ったんだ、私はまた、WPF、C#とMVVMにはかなり新しいです、私はいくつかの方向
INPCとObservableCollectionを使用する必要があります。それ以外の場合はMVVMではありません。 MVVMはモデル内で行われたすべてのアクションを実行する必要があり、INPC/INCCは、Viewがデータが変更されたことを知り、画面を更新する必要がある方法です。実際にMVPアプリケーションを作成しているようです。 – Aron