2014-01-10 44 views
0

我在DataTable結合TextBoxtext屬性字段值作爲這樣的:如何在通過代碼更改值後強制更新TextBox的數據源?

With control.Item_Full_Description 
    .DataBindings.Add("Text", mdtItemMstr, "Item_Full_Description", True) 
End With 

當我進行更改TextBox手動它們被檢測和在數據源更新,從而保存到數據庫是準確的。但是,如果我在幕後進行更改,數據源不會更新,並且保存到數據庫會導致舊值被保存回來。這裏是我如何更新在代碼中TextBox

Item_Full_Description.Text = _mItem_mstr_c + " - " + Item_Description.Text + " - " + Unit_of_Measurement_UOM.Text 

我顯然缺少的一個基本步驟有這種變化反映在數據源,但是網上一搜沒有證明是有用的。也許我只是不確定搜索什麼,所以任何建議,甚至指導,將不勝感激。謝謝。

回答

1

由於您正在從代碼更新控件,因此您需要強制更新綁定源。

查找到的BindingContext類... http://msdn.microsoft.com/en-us/library/system.windows.forms.control.bindingcontext%28v=vs.110%29.aspx

BindingContext([data source]).EndCurrentEdit() 
+0

好的,謝謝。針對你的後續問題 - 在一次保存之前一遍又一遍地在文本更改事件中調用此函數是否安全?似乎應該只在接受更改前調用一次,但我不確定。 –

+0

理想情況下,您只想在完成所有更改後才調用該選項,以防止出現衝突和性能原因。 – Jason

相關問題