title: How to raise PropertyChanged event without using string name
body: <p>It would be good to have ability to raise 'PropertyChanged' event without explicit specifying the name of changed property. I would like to do something like this:</p>
  
  <pre><code>    public string MyString
      {
          get { return _myString; }
          set
          {
              ChangePropertyAndNotify&lt;string&gt;(val=&gt;_myString=val, value);
          }
      }
  
      private void ChangePropertyAndNotify&lt;T&gt;(Action&lt;T&gt; setter, T value)
      {
          setter(value);
          PropertyChangedEventHandler handler = PropertyChanged;
          if (handler != null)
          {
              handler(this, new PropertyChangedEventArgs(setter.Method.Name));
          }
      }
  </code></pre>
  
  <p>In this case received name is a name of lambda-method: "&lt;set_MyString>b__0".</p>
  
  <ol>
  <li>Can I be sure, that trimming "&lt;set_" and ">b__0" will always provide the correct property name?</li>
  <li>Is there any other to notify about property changed (from property himself)?</li>
  </ol>
  
  <p>Thank you.</p>