7

我正在使用VS2010,WPF和EF。通過將實體拖出數據源工具窗口,我已將控件放置在窗口上。我使用了「細節」設置,因此我的實體由多個標籤和文本框表示。我還添加了用下面的代碼按鈕:強制WPF提交焦點元素更改

_context.SaveChanges(); 

當我編輯的數據,無論文本框具有焦點的更改不會提交回數據庫。其他的一切都很好。如果我在點擊保存按鈕之前將焦點轉移到另一個元素,它也會提交。我已經經歷了與DataGrid相同的事情。

我知道我錯過了一些簡單的東西,但我可以弄明白。關於我失蹤的任何想法?

謝謝!

回答

12

這是因爲TextBox的默認綁定UpdateSourceTrigger是LostFocus。如果您修改所有綁定將它設置爲的PropertyChanged,它會像你期望:

<TextBox Text="{Binding SomeProperty, UpdateSourceTrigger=PropertyChanged}" /> 
+2

爲什麼不文本框「失焦」按鈕被按下時?你可以編程強制這個? – 2010-04-15 15:12:12

+0

+1這正是我所期待的。謝謝! – 2010-04-15 15:15:33

+1

任何人都可以回答Rob Fonseca-Ensor的問題嗎? – newman 2011-01-02 21:23:34

3

我只是碰到了同樣的問題試圖建立一個數據綁定文本框的值編程的時候,但安倍的提議沒」 t爲我們的設置工作(這導致了一些不穩定的驗證行爲)。

以下是我得到它的工作:

TextBox tb = (TextBox)this.FindName("TargetTextBox"); 
tb.Text = "1234"; 
tb.GetBindingExpression(TextBox.TextProperty).UpdateSource();