Chcę powiązać TextBox w oknie z właściwością zawartą w klasie, która jest zmienną viewmodel i upewnić się, że właściwość PropertyChanged INotifyPropertyChanged rozprzestrzenia się z klasy do rodzica.INotifyPropertyChanged w podklasie
Pozwól mi zilustrować na przykładzie:
(Window DataContext jest ustawiony do instancji ViewModel)
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");
}
}
...
}
Problemem w tym przypadku jest to, że podczas zmiany atrybutów a bound Textbox nie aktualizuje wiązania, ponieważ zakładam, że słucha zdarzenia PropertyChanged ViewModel, a nie instancji klasy OtherClass.
Jakieś pomysły, jak zaradzić tej sytuacji? Zastanawiałem się nad powiązaniem INotifyPropertyChanged Innego rodzaju z rodzica, ale musi istnieć lepszy sposób.
Upadłe proste przykłady to najlepsze przykłady :) – Moulde
Jest to niepraktyczne, jeśli SomeSubClass zawiera stos właściwości. Czy naprawdę chcesz powielić wszystkie te właściwości? – Sean
@Sean - Nie jestem pewien, co masz na myśli przez "duplikowanie wszystkich tych właściwości". W tym przykładzie to tylko zbieg okoliczności, że Imię jest zdefiniowane dla rodzica i dziecka. Nie ma to znaczenia dla podstawowego pytania. Przede wszystkim można powiązać bezpośrednio z właściwościami klasy potomnej, zamiast próbować użyć zmiennych proxy. W tym sensie wystąpiłoby zero powielania. – Josh