Было бы хорошо иметь возможность поднять событие PropertyChanged без явного указания имени измененного свойства. Я хотел бы сделать что-то вроде этого:
public string MyString
{
get { return _myString; }
set
{
ChangePropertyAndNotify<string>(val=>_myString=val, value);
}
}
private void ChangePropertyAndNotify<T>(Action<T> setter, T value)
{
setter(value);
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(setter.Method.Name));
}
}
В этом случае полученное имя является именем лямбда-метода: "< set_MyString > b__0".
- Могу ли я быть уверенным, что обрезка "< set_" и " > b__0" всегда будет содержать правильное имя свойства?
- Есть ли какие-либо другие уведомления об изменении свойства (из самого свойства)?
Спасибо.