2009-07-13 78 views
2

如果文本框上的文本是使用雙向模式將數據綁定到屬性並將文本設置爲某些內容,它應該更新屬性是否有意義?當我在控件中鍵入內容時,我的屬性得到更新,但是當我在代碼中設置值時,屬性不會更新。設置textBox.Text不會更新綁定的twoway屬性?

+0

你能告訴我們一些代碼嗎? – 2009-07-13 16:19:02

回答

3

我會說直接修改綁定的Text屬性是沒有意義的。你的代碼應該設置綁定的另一端,並允許綁定更新控件。

如果在設置了Text屬性時更新了綁定對象,那麼需要使用特殊情況代碼來檢測何時這樣的分配者是由於其他原因而導致綁定對象更改的結果。否則,你會以無限循環結束。

+0

這個問題來自我正在做的一些工作,以編程方式添加/刪除數據綁定。我發現,只要我在代碼中設置綁定,它就會將我所綁定的屬性和文本框設置爲空字符串。當我再次設置數據綁定時,我希望將文本框內的文本設置爲屬性,而不是其他方式。爲什麼我首先要刪除數據綁定?因爲該屬性得到不斷更新,並且我不希望文本框在焦點時更改其文本。 – djcouchycouch 2009-07-13 16:26:29

0

這是因爲它只在文本框丟失焦點時提交數據。 Here是一個有點相關的問題,避免了這一點。

1

您不應該設置文本框的.Text值...設置它綁定到的屬性的值。 :)

我鼓勵你閱讀更多關於Model-View-ViewModel方法來設計你的視圖。在做這類工作時,它保持清晰的關注點。你看到這個導致綁定刷新的焦點的「bug」的原因是因爲大多數時候這種事情是不合適的。

這是MVVM的一個很不錯的視頻介紹:MVVM on Channel 9

相關問題