我想將窗口中的TextBox綁定到作爲視圖模型的變量的類中包含的屬性,並確保INotifyPropertyChanged的PropertyChanged事件從該類傳播到父級。INotifyPropertyChanged在子類
讓我用一個例子:
(Window的DataContext設置視圖模型的實例)
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");
}
}
...
}
本例中的問題是,當屬性的變化,綁定的文本框不會更新綁定,因爲我認爲它正在監聽ViewModel的PropertyChanged事件,而不是其他類的實例。
關於如何彌補這種情況的任何想法?我正在考慮將OtherClass的INotifyPropertyChanged鏈接到它的父類,但是必須有更好的方法。
下降死簡單的例子是最好的例子:) – Moulde
這是不實際的,如果SomeSubClass包含一堆屬性。你真的要複製所有這些屬性嗎? – Sean
@Sean - 我不確定你的意思是「重複所有這些屬性」。在這個例子中,只是巧合,名字是在父母和孩子身上定義的。這對潛在的問題沒有任何影響。主要的是,你可以直接綁定到子類的屬性,而不是嘗試使用代理變量。從這個意義上說,將會有零重複。 – Josh