我之前沒有真正做過雙向綁定項目,所以這可能是一個簡單的問題。與UI怪癖的雙向綁定
我有一個業務對象與所有正確的接口(INotifyPropertyChanged等)。我通過BindingSource將名爲CPP的Int32屬性綁定到名爲txtCPP的文本框。規則規定如果CPP小於0,文本框應該是空白的,否則應該顯示一個值。
所以要做到這一點,我將屬性從Int32更改爲Int32? (可爲空),並且當CPP屬性的支持變量小於零時,我實際上返回null。
這實際上可以在UI中正常工作。當我想將業務對象保存到數據庫時,問題就出現了。外部方法使用業務對象,讀取其屬性(包括CPP)並將其保存到數據庫中。顯然,CPP不是-1,而是寫爲空。
我確信在做雙向綁定項目時我不是第一個提出這個問題的人。一個人如何以一種乾淨的方式處理這些問題,而不用像這樣的邊緣案例來污染表單代碼呢?
我添加了一個formattingEnabled參數綁定設置,否則它不能正常工作。 – AngryHacker 2010-09-08 21:49:38
真的嗎?只是好奇,你使用什麼版本的.net?實際上,在我發佈和運行之前,我在VS 2010/.net 4.0中運行了該代碼。奇怪的。 – JMarsch 2010-09-08 21:58:54