Quiero vincular un TextBox en la ventana a una propiedad contenida dentro de una clase que es una variable del viewmodel y asegurar que el evento PropertyChanged de INotifyPropertyChanged se propague desde la clase al padre.INotifyPropertyChanged en la subclase
Permítanme ilustrar con un ejemplo:
(DataContext de ventana se establece en una instancia de modelo de vista)
public class ViewModel {
private OtherClass classInstance = new OtherClass();
public int Attribute {
get { return classInstance.Attribute; }
}
}
public class OtherClass : INotifyPropertyChanged {
private int _attribute;
public int Attribute {
get { return _attribute; }
set {
_attribute = value;
PropertyChanged("Attribute");
}
}
...
}
El problema en este ejemplo es que, cuando los cambios de atributo, el bound Textbox no actualiza el enlace ya que supongo que está escuchando el evento PropertyChanged de ViewModel y no el de la instancia de OtherClass.
¿Alguna idea sobre cómo remediar esta situación? Estaba pensando en encadenar INotifyPropertyChanged de OtherClass al de su principal, pero tiene que haber una forma mejor.
Los ejemplos simples Drop Dead son el mejor tipo de ejemplos :) – Moulde
Esto no es práctico si SomeSubClass contiene un montón de propiedades. ¿Realmente vas a duplicar todas esas propiedades? – Sean
@Sean - No estoy seguro de lo que quiere decir con "duplicar todas esas propiedades". En el ejemplo, es solo una coincidencia que Name esté definido en el padre y el hijo. No hace ninguna diferencia a la pregunta subyacente. Principalmente, puede vincular directamente a las propiedades de la clase secundaria en lugar de tratar de usar variables proxy. En ese sentido, no habría duplicación. – Josh