Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【C#】プロパティ名を文字列として取得

More than 1 year has passed since last update.

久しぶりにWPFを使っていてViewModelのPropertyChangedを発行する際の
プロパティ名を固定値ではなく動的に取得するようにしておきたかったのでメモ。
#使わなくなるとすぐ忘れてしまったので…

サンプル
public class HogeModel : INotifyPropertyChanged
{
    int _param1;

    public int Param1
    {
        get { return _param1; }
        set { _param1 = value; OnPropertyChanged(); }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged([CallerMemberName] string propertyName = "")
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

[CallerMemberName]で呼び出し元のメソッド名を取得出来るので
単純に自身の変更通知を行う場合は引数を指定しなくても
勝手に通知してくれます。
別プロパティの変更通知を行う場合や
通常のメソッド内で通知する場合は諦めてnameof演算子で取得するしかありませんが…。

mag04
備忘録的に記載していきます。 基本的にC#メインです。 緩やかに転職活動中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away