プロパティの変更通知でPropertyChangedEventArgsが大量に生成されるのが気になるときは
INortifyPropertyChanged
を実装してプロパティの変更をView側に通知するには,変更された際にPropertyChangedEventArgs
のインスタンスを生成してPropertyChangedEventHandler
の実行時にパラメータとして渡す必要がある.
あるプロパティの更新が非常に頻繁だと,PropertyChangedEventArgs
のインスタンスが大量に作られることになる.
非常に頻繁でなければ気にすることはないと思うが,そのような場合はそのプロパティ用のPropertyChangedEventArgs
をreadonlyな静的メンバーとして用意しておき,それを使い回すようにするという方法がある.
詳しくはこちら↓ blog.okazuki.jp
例えばセンサーデータなどはこのテクニックを使うとよいかもしれない.
private readonly static PropertyChangedEventArgs _sensorValuePropertyChangedEventArgs = new PropertyChangedEventArgs(nameof(SensorValue)); private double _sensorValue; public double SensorValue { get { return _sensorValue; } set { if (this._sensorValue == value) { return; } this._sensorValue = value; this.PropertyChanged?.Invoke(this, _sensorValuePropertyChangedEventArgs); } }