wpf MVVM (Prism based) アプリケーションでいくつかの設計上の質問に直面しています。アドバイスをいただければ幸いです。私のモデルは非常に単純です。
public class Customer
{
public string FirstName {get;set;}
public string LastName {get;set;}
}
ご覧のとおり、Model クラスの INotifyPropertyChnaged サポートはありません。INotifyPropertyChanged をサポートする CustomerDetails 画面用の ViewModel もあります。
public class CustomerDetailsViewModel:INotifyPropertyChanged /*Or NotificationObject*/
{
/*INotifyPropertyChanged event */
private Customer item;
public Customer Item
{
get{return item;}
set
{
item=value;
//Raise PropertyChanged
//Set IsDirty to true
}
}
}
私の見解では、Item.FirstName へのバインディングと ViewModel の更新を使用しています。私の問題は - FirstName プロパティのみがビューを介して更新されており、モデル自体が INotifyPropertyChanged をサポートしていないため、Item セッターが呼び出されず、IsDirty は false のままです (したがって、IsDirty 通知は更新されません)。 UI)。
モデルで INotifyPropertyChanged をサポートし、ビュー モデルで Item.PropertyChanged イベントに登録し、実際に IsDirty を true に設定できることはわかっていますが、CodeFirst も使用していて、Model クラスが ServerSide 間で共有されているためです。クライアント側 (サービス参照の追加を使用しない) では、サーバー側に INotifyPreoprtyChanged のものを追加したくありません。
T4 テンプレートを使用してすべてのエンティティを (Customer として) 1 つずつコピーし、すべてのモデルに INotifyPropertyChanged サポートを追加する新しいプロジェクトを作成することを検討しています。それは合理的に見えるものですか?他の提案はありますか?
ありがとう!