我有一个绑定到ObservableCollection的数据网格.我想知道什么时候改变房产.我在同一个应用程序中有一个类似的数据网格,我有这个工作.但是,此数据网格绑定到从另一个类继承的类.
所以下面是一个简单的代码片段.
在我的孩子,我必须实现INotifyPropertyChanged接口,虽然这对我来说似乎有点痛苦,并没有真正利用继承.我可以简单地将OnPropertyChanged公开或者是错误的吗?
基类
class Animal : INotifyPropertyChanged
{
public int Age
{
get
{ return _age;}
set
{
_age = value;
OnPropertyChanged("Age");
}
}
int _age
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
Run Code Online (Sandbox Code Playgroud)
儿童班
class Dog : Animal
{
public bool Fleas
{
get
{ return _fleas;}
set
{
_fleas = value;
}
}
int _fleas
}
Run Code Online (Sandbox Code Playgroud)
protected 可能是你想要的,但一般来说,是的.
你经常发现的一件事,例如在MVVM框架如Caliburn.Micro中,有一个像PropertyChangedBase这样的抽象类只有简单的实现INotifyPropertyChanged.
public abstract class PropertyChangedBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Run Code Online (Sandbox Code Playgroud)
这种方法的缺点是,所有想要利用它的类最终都必须继承PropertyChangedBase,这可能并不总是希望或可能的.
| 归档时间: |
|
| 查看次数: |
475 次 |
| 最近记录: |