2017-08-04 15 views
2

でCallerMemberNameを使用するためにはどうすればINotifyPropertyChangedのクラスの実装でCallerMemberName属性を使用していました。しかし、CallerMemberNameは、デフォルト値を持つパラメータでのみ使用できます。ハードコードされた文字列引数を使用してnotifyメソッドを呼び出さなくても、この矛盾を解決するためによく使われる方法はありますか?は、CLSに準拠し組立

答えて

1

私は単にCallerMemberName属性を削除していないとパラメータを意味するデフォルトのパラメータ値は、もはや任意であり、そのメソッドのシグネチャは次のようになります。

private void NotifyPropertyChanged(String propertyName) 

そして、それを呼び出すために小さな(十分に)変化であり、文字列引数を提供nameof演算子と:

NotifyPropertyChanged(nameof(FooProperty)); 

これは非常にうまく機能しているようです。

私は質問を少しだけ開いたままにしますが、他の人がより良い方法を持っている場合や、この解決策に問題があると思われる場合は、このままにしておきます。

関連する問題