私の質問は: ビューモデルの継承チェーンを管理する方法は?
私の状況:
INotifyPropertyChanged インターフェイスのみを実装する標準のViewModelBaseを使用しています。
さらに、Guid を持つBusinessObjectViewModel、個人のコア データを持つPersonBaseViewModel、顧客関連のものを持つCustomerViewModel 、従業員関連のものを持つEmployeeViewModelがあります。
すべてのビューモデルは確実にモデル オブジェクト (Customer、Employee、PersonBase) をカプセル化します。
- BusinessObjectViewModel は ViewModelBase から継承します
- PersonBaseViewModel は BusinessObjectViewModel から継承します
- CustomerViewModel は PersonBaseViewModel から継承します
- EmployeeViewModel は PersonBaseViewModel から継承します
モデルは、コンストラクターを介してビューモデルに入ります。
コンストラクター チェーンを使用する場合 (すべてのビューモデルが基本コンストラクターを呼び出します)、すべてのビューモデルには、モデルからカプセル化された値を返すモデルがあります。
しかし、すべてのビューモデルにモデル プロパティが必要です。CustomerViewModel の場合、CustomerViewModel に参照があり、 PersonBaseViewModel に 1 つ、BusinessObjectViewModelに 1 つの同じオブジェクトの参照があります。それは私にはばかげているように聞こえます。
または、上部のビューモデルですべてのプロパティ アクセスをキャストする必要があります。
ps これは私のモデル階層のほんの一部です。
前もって感謝します。