C# 订阅自跟踪实体PropertyChanged事件
我正在使用自跟踪实体编写一个WPF应用程序。当我的模型值更改时,我无法禁用/启用“保存”按钮。通常,对于常规实体框架模型,我可以简单地订阅ViewModel中的Model.PropertyChanged事件,然后为我的保存按钮提升属性更改,该按钮检查验证并禁用或启用我的保存按钮 出于某种原因,对于自跟踪实体,我注意到Model.PropertyChanged事件被标记为受保护,因此我无法在ViewModel中直接订阅它。有没有办法在不修改T4模板的情况下订阅此活动C# 订阅自跟踪实体PropertyChanged事件,c#,wpf,silverlight,mvvm,self-tracking-entities,C#,Wpf,Silverlight,Mvvm,Self Tracking Entities,我正在使用自跟踪实体编写一个WPF应用程序。当我的模型值更改时,我无法禁用/启用“保存”按钮。通常,对于常规实体框架模型,我可以简单地订阅ViewModel中的Model.PropertyChanged事件,然后为我的保存按钮提升属性更改,该按钮检查验证并禁用或启用我的保存按钮 出于某种原因,对于自跟踪实体,我注意到Model.PropertyChanged事件被标记为受保护,因此我无法在ViewModel中直接订阅它。有没有办法在不修改T4模板的情况下订阅此活动 protected v
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;
我总是修改模板,使其不受保护。这是一个模板,原因如下:) 我认为另一种方法是在类上创建一个公共方法,该方法在内部引发PropertyChanged通知
partial class MyModel
{
public RaiseEFPropertyChanged(string propertyName)
{
RaisePropertyChanged(propertyName);
}
}
我继续修改了模板,看起来效果很好。比我想象的要容易。谢谢