3
セルフトラッキングエンティティを使用してWPFアプリケーションを作成しています。モデルの値が変更されたときに[保存]ボタンを無効/有効にしても問題ありません。通常、通常のEntity Frameworkモデルでは、ViewModelのModel.PropertyChangedイベントを購読するだけで、検証をチェックするSaveボタンと、保存ボタンを無効または有効にするRaisePropertyChangedがあります。セルフトラッキングエンティティの購読PropertyChangedイベント
何らかの理由で、Self-Tracking Entitiesで、Model.PropertyChangedイベントがprotectedとしてマークされているため、ViewModelで直接購読できませんでした。このイベントにT4テンプレートを変更せずに購読する方法はありますか?
protected virtual void OnPropertyChanged(String propertyName)
{
if (ChangeTracker.State != ObjectState.Added && ChangeTracker.State != ObjectState.Deleted)
{
ChangeTracker.State = ObjectState.Modified;
}
if (_propertyChanged != null)
{
_propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
protected virtual void OnNavigationPropertyChanged(String propertyName)
{
if (_propertyChanged != null)
{
_propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged{ add { _propertyChanged += value; } remove { _propertyChanged -= value; } }
private event PropertyChangedEventHandler _propertyChanged;
private ObjectChangeTracker _changeTracker;
私は先に進んでテンプレートを修正しただけでうまくいくようです。私が思ったよりも簡単だった。ありがとう! – ccorrin