我回答了關於在代碼隱藏中創建綁定的another question,我最初嘗試回答它是發佈沒有指定Path
的綁定代碼。這個綁定編譯得很好,但是值永遠不會更新。如果我將綁定更改爲使用Path,它可以正常工作。如何在未指定路徑的代碼隱藏中創建綁定?
這是爲什麼?在沒有Path的代碼隱藏中創建綁定的正確方法是什麼?例如,我將如何在代碼隱藏中重新創建Value="{Binding }"
?
非工作代碼:
Binding b = new Binding();
b.Source = SomeInt;
b.Mode = BindingMode.OneWay;
MyProgressBar.SetBinding(ProgressBar.ValueProperty, b);
SomeInt = 50;
工作代碼:
Binding b = new Binding();
b.Source = this;
b.Path = new PropertyPath("SomeInt");
MyProgressBar.SetBinding(ProgressBar.ValueProperty, b);
SomeInt = 50;
這可能也是如此:'INPC'表示哪個*屬性*發生了變化。沒有機制可以說「整個*對象*改變了」。 –
@JoeWhite然而,我可以將我的綁定設置爲空('{Binding}'),並且'PropertyChange'通知工作得很好。沒有辦法在代碼隱藏方面做到這一點? – Rachel
@Rachel:這是因爲有DataContext更改的通知,但這是該規則的一個例外。 –