私はMVVMパターン、特にビューがデータベーステーブルを表すときに何をすべきかを学ぼうとしていますが、ビューには単一のデータベースフィールドを表すいくつかの要素があります。簡単な例として:
DateTime 型のデータベース フィールド (各データベース フィールドのプロパティを持つクラス) があるとしますが、ビューには、日付コンポーネントの日付ピッカーと時間コンポーネントの TimeSpan があります。
MVC パターンでは、datepicker の null 許容 DateTime プロパティと時刻の null 許容 TimeSpan プロパティを含む POCO モデルを常に使用します。データベース クラスをモデルにマップします。
MVVM パターンでは、データベース フィールドを表すクラスをラップし、ラップされたクラスの DateTime プロパティの同期を維持する set アクセサーにロジックを持たせることができます (そして、2 つのフィールドが null 可能であるため、viewmodel のプライベート DateTime および TimeSpan フィールド、設定のみ)日付と時刻の両方が null でない場合は、データベース クラスの Datetime プロパティ)
別の方法として、MVC モデルに似たモデルをビューモデルでラップすることもできます。つまり、別々のプロパティを表す日付と時刻のコンポーネントを持つ POCO モデルです。ビューモデルは、データベース クラスのインスタンスを作成または更新するときにのみ日付とタイムスパンを追加する保存 ICommand とともに、INotifyPropertyChanged を実装するはるかに単純なラッパーになります。
明らかに、両方のアプローチが「機能」しますが、MVVM アーキテクチャをより適切に実践および/または最も順守していると見なされるものです。ありがとうございました。