Me parece que me repito mucho y eso, por supuesto, no sirve. Entonces me pregunté si podría hacer algo al respecto. Se trata de un código común en mi aplicación WPF:Envolviendo el conjunto de propiedades
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
así que me preguntaba si podría envolver el colocador de alguna manera para que sea mejor y más fácil de leer. Una idea fue algo como esto:
protected void PropertySetter<T>(T property, T value, string name)
{
if (EqualityComparer<T>.Default.Equals(property, value))
{
property = value;
OnPropertyChanged(name);
}
}
Uso de la siguiente manera:
private string _name2;
public string Name2
{
get { return _name2; }
set
{
PropertySetter<string>(Name2, value, "Name2");
}
}
, pero no estoy seguro de que esto es realmente inteligente o funcionaría, así como con tipos de valor?
Supongo que no soy el primero en probar algo como esto, así que si alguien conoce una buena manera infalible de algo como esto, por favor entre en escena. Creo que no pude hacer el propertyChanged typesafe sin reflexión pero con ideas también ayudaría
Compruebe ReactiveUI para este comportamiento, si no desea utilizarlo, entonces usted podría ser capaz de copiarlo. http://www.reactiveui.net/ p. 'set {this.RaiseAndSetIfChanged (x => x.PasswordConfirmation, value); } ' –
Agregue' ref' a su parámetro de propiedad y también funcionará para ValueTypes. – SimpleVar