Qual é a melhor maneira de chamar o evento PropertyChanged de INotifyPropertyChanged?
Ao implementar a interface INotifyPropertyChanged, você é responsável por chamar o evento PropertyChanged a cada vez que uma propriedade é atualizada na classe.
Isso normalmente leva ao seguinte 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);
}
}
Isso é12 linhas por propriedade.
Seria muito mais simples se fosse possível decorar propriedades automáticas como esta:
[INotifyProperty]
public double MyField{ get; set; }
Infelizmente, isso não é possível (consulteesta postagem no msdn por exemplo)
Como posso reduzir a quantidade de código necessária por propriedade?