И я написал небольшой инструмент, который генерирует весь необходимый код свойства в частичном классе. Это ни в коем случае не элегантное решение, но оно работает :)

еализации интерфейса INotifyPropertyChanged вы отвечаете за вызов события PropertyChanged каждый раз, когда свойство обновляется в классе.

Это обычно приводит к следующему коду:

    public class MyClass: INotifyPropertyChanged

        private bool myfield;
        public bool MyField
        {
            get { return myfield; }
            set
            {
                if (myfield == value)
                    return;
                myfield = value;
                OnPropertyChanged(new PropertyChangedEventArgs("MyField"));
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            PropertyChangedEventHandler h = PropertyChanged;
            if (h != null)
                h(this, e);
        }
   }

Это12 строк за собственность.

Было бы намного проще, если бы можно было украсить автоматические свойства следующим образом:

[INotifyProperty]
public double MyField{ get; set; }

Но, к сожалению, это невозможно (см.эта почта на мсдн например)

Как я могу уменьшить количество кода, необходимого для каждого свойства?