カスタム イベントによるプロパティ値の変更の処理
プロパティ値の変更時のイベントの発生に関する質問に対して、次の点に注意することが重要です。 INotifyPropertyChanged インターフェイスはイベントを通じて動作します。このインターフェイスは、コンシューマがサブスクライブできる単一イベント PropertyChanged を提供します。
ただし、INotifyPropertyChanged のより信頼性の高い実装には、イベントを慎重に管理する必要があります。
protected void OnPropertyChanged(PropertyChangedEventArgs e) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, e); } protected void OnPropertyChanged(string propertyName) { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
このアプローチでは、プロパティ変更通知が分離されます。メソッドを使用すると、プロパティの処理が簡素化され、INotifyPropertyChanged インターフェイスが完全に実現されます。さらに、特定のプロパティ変更のカスタム イベントを作成できます:
protected void OnImageFullPathChanged(EventArgs e) { EventHandler handler = ImageFullPathChanged; if (handler != null) handler(this, e); } public event EventHandler ImageFullPathChanged;
.Net 4.5 で導入された 'CallerMemberAttribute' を使用すると、暗黙的なプロパティ名の呼び出しを利用できます:
protected void OnPropertyChanged( [System.Runtime.CompilerServices.CallerMemberName] string propertyName = "") { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
以上がイベントを使用して C# でプロパティ値の変更を効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。