我有一個winforms複選框綁定到實體框架實體的屬性。文本框/複選框的數據綁定值是不正確的,直到文本框/複選框被驗證
因此,例如,我有bindingSource.DataSource = myDog
與綁定到的屬性IsSleeping
一個複選框,這樣,當用戶檢查框,IsSleeping
爲真,當用戶取消選中複選框,IsSleeping
爲假。
這工作正常。問題在於IsSleeping
的值只有在複選框被驗證時纔會更新,只有在焦點將遠離從複選框移動到其他位置時纔會發生。因此,如果我想事情發生時沒有選中該複選框:
private void IsSleepingCheckbox_CheckedChanged(object sender, EventArgs e)
{
OnDogPropertyChanged(myDog);
MyAnimalEntities.SaveChanges();
}
myDog.IsSleeping
仍然是真實的,直到複選框的Validated
是後來提高。因此,當差myNaughtyKitty
(誰在聽DogPropertyChanged
事件)來吃myDog
的食物盤想着myDog
正在睡覺,myDog
真的只是醒來! 哦,不!
更糟,MyAnimalEntities.SaveChanges()
沒有看到變化myDog
然而,這樣的IsSleeping
值永遠不會保存到數據庫中。移動.SaveChanges()
調用IsSleepingCheckbox_Validated
不解決這個問題,因爲如果該複選框被觸發,但隨後的形式被關閉而沒有從複選框移動焦點遠,複選框從不驗證,因此它的狀態永遠不會保存!
我想這應該是一個數據綁定和複選框/文本框相當常見的問題,事實上,我已經發現了大量關於這個主題的帖子,但沒有人似乎有過解決方案。 有沒有人能找到解決這個問題的方法?
您在谷歌搜索小時之後保存了我的生活。謝謝。 – superjugy 2015-12-23 05:00:17