¿Cuál es la mejor manera de llamar al evento PropertyChanged de INotifyPropertyChanged?

Cuando implementa la interfaz INotifyPropertyChanged, es responsable de llamar al evento PropertyChanged cada vez que se actualiza una propiedad en la clase.

Esto generalmente lleva al siguiente código:

    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);
        }
   }

Es decir12 lineas por propiedad

Sería mucho más simple si uno pudiera decorar propiedades automáticas como esta:

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

Pero desafortunadamente esto no es posible (veresta publicación en msdn por ejemplo)

¿Cómo puedo reducir la cantidad de código necesario por propiedad?

Respuestas a la pregunta(2)

Su respuesta a la pregunta