我有一個簡單的複選框WPF複選框綁定 - 在屬性設置改變值不會影響UI
<CheckBox IsChecked="{Binding ForceInheritance}"/>
在代碼中,我有一個類「INotifyPropertyChanged的」和物業
public bool ForceInheritance
{
get { return forceInheritance; }
set
{
if (forceInheritance != value)
{
value = SomeTest();
if (forceInheritance != value)
{
//something is done here.
}
OnPropertyChanged("ForceInheritance");
}
}
}
如果SomeTest ()返回!值,因此底層數據不必更改CheckBox仍會更改其IsChecked狀態。
例如:
ForceInheritance是假的。
複選框被點擊。
SomeTest()返回false。
- >底層數據沒有變化
- >我希望CheckBox保持未選中
CheckBox被檢查。
我能做些什麼來改變不了CheckBox的狀態器isChecked當二傳手實際上並沒有改變價值?
我想到了 「OnPropertyChanged(」 ForceInheritance 「);」會做的伎倆,但它沒有。
謝謝你的時間。
您好!我認爲OnPropertyChanged()會再次觸發getter而不是setter。 但是,謝謝你的回答,它使我找到了解決辦法。 建議使用驗證。 當setter沒有改變基礎值時,我創建了一個錯誤消息。 當返回Validation errormessage時,刪除errormessage並調用OnPropertyChanged()。 - >使用正確的值調用getter - > CheckBox保持未選中狀態。 – user227882 2009-12-09 14:33:42