この例を考えてみましょう。私のビューモデルには、2 つのプロパティがImage
ありHasImage
ます。明らかに、HasImage
に依存してImage
おり、 が更新されるたびに更新する必要がありますImage
。これは、以下に示すように、少なくとも 2 つの方法で実行できます。
性能とデザインの両方を考慮すると、どの方法が最適ですか?
解決策 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);
}
}
}