【发布时间】:2013-06-04 15:06:07
【问题描述】:
考虑这个例子。在我的视图模型中,我有两个属性,Image 和 HasImage。显然,HasImage 依赖于Image,并且应该在Image 更新时更新。这至少可以通过两种方式完成,如下所示。
兼顾性能和设计,哪种方法最好?
解决方案 1
public MyViewModel()
{
PropertyChanged += MyViewModel_PropertyChanged;
}
private void MyViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == "Image")
{
OnPropertyChanged(() => HasImage);
}
}
public bool HasImage
{
get
{
return (Image != null);
}
}
public BitmapSource Image
{
get
{
return this.image;
}
set
{
if (this.image != value)
{
this.image = value;
OnPropertyChanged(() => Image);
}
}
}
解决方案 2
public MyViewModel()
{
}
public bool HasImage
{
get
{
return (Image != null);
}
}
public BitmapSource Image
{
get
{
return this.image;
}
set
{
if (this.image != value)
{
this.image = value;
OnPropertyChanged(() => Image);
OnPropertyChanged(() => HasImage);
}
}
}
【问题讨论】: