3
我在寫一個使用自我跟蹤實體的WPF應用程序。我遇到問題禁用/啓用我的保存按鈕,因爲我的模型的值已更改。通常使用常規實體框架模型,我可以簡單地訂閱ViewModel中的Model.PropertyChanged事件,然後使用RaisePropertyChanged爲我的保存按鈕,該按鈕用於檢查驗證和禁用或啓用我的保存按鈕。訂閱自我跟蹤實體PropertyChanged事件
出於某種原因,對於自我跟蹤實體,我注意到Model.PropertyChanged事件被標記爲受保護的,所以我無法直接在我的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