Is there a way to auto generate those data-binding ready properties for my class?
I'm writing a winforms application using data-binding in C#. I found recently I'm writing a lot of properties like the code shown at below. It's ok to write those code but I'm thinking maybe I miss something, maybe I could code less and make the code look cleaner?  

Is there automated way for doing this?  
Like Codedom or any framework I don't know?
    
    public class SampleClass : INotifyPropertyChanged
    {
        public Boolean Enabled
        {
            get { return _enabled; }
            set
            {
                if (_enabled == value) return;

                _enabled = value;

                // broadcast the change
                RaisePropertyChanged(PropertyName_Enabled);

                // this object is modified
                this.Modified = true;
            }
        }

        public Single Degree
        {
            get { return _degree; }
            set
            {
                if (_degree == value) return;

                _degree = value;

                // broadcast the change
                RaisePropertyChanged(PropertyName_Degree);

                // this object is modified
                this.Modified = true;
            }
        }

        // Define the property name this class exposes and notifies
        public static readonly String PropertyName_Enabled = "Enabled";
        public static readonly String PropertyName_Degree = "Degree";

        private Boolean _enabled;
        private Single _degree;    
    }    
Is there a way to auto generate those data-binding ready properties for my class?
===

I'm writing a winforms application using data-binding in C#. I found recently I'm writing a lot of properties like the code shown at below. It's ok to write those code but I'm thinking maybe I miss something, maybe I could code less and make the code look cleaner?  

Is there automated way for doing this?  
Like Codedom or any framework I don't know?
    
    public class SampleClass : INotifyPropertyChanged
    {
        public Boolean Enabled
        {
            get { return _enabled; }
            set
            {
                if (_enabled == value) return;

                _enabled = value;

                // broadcast the change
                RaisePropertyChanged(PropertyName_Enabled);

                // this object is modified
                this.Modified = true;
            }
        }

        public Single Degree
        {
            get { return _degree; }
            set
            {
                if (_degree == value) return;

                _degree = value;

                // broadcast the change
                RaisePropertyChanged(PropertyName_Degree);

                // this object is modified
                this.Modified = true;
            }
        }

        // Define the property name this class exposes and notifies
        public static readonly String PropertyName_Enabled = "Enabled";
        public static readonly String PropertyName_Degree = "Degree";

        private Boolean _enabled;
        private Single _degree;    
    }    