[小菜一碟] Windows Forms TextBox 的單向綁定

要在一支既有的 Windows Forms(Windows 視窗程式)上,增加一個 TextBox 控制項,它有一個特殊的需求,就是在 TextBox 修改的文字不能與綁定的 DataMember 連動,簡單來說,就是做單向綁定(One-Way Binding)

一般我們新增進 TextBox.DataBindings 的 Binding,預設都是雙向綁定,也就是說在 TextBox 上修改文字,也會更新到 DataMember。

單向綁定

要做單向綁定,就是讓 TextBox 內的文字被修改時,不要更新到 DataMember,這個我們可以從 Binding 類別裡面有的一個屬性 DataSourceUpdateMode 去控制,將它設成 DataSourceUpdateMode.Never 即可。

OnValidation vs OnPropertyChanged

仔細觀察 DataSourceUpdateMode 這個列舉,會發現它還有兩個值,分別是:OnValidationOnPropertyChanged,Binding.DataSourceUpdateMode 的預設值是 OnValidation,意思就是說 TextBox 內修改的文字,在驗證事件過後,才會更新到 DataMember。

這兩者在效果上的差異在於在 TextBox 上修改文字的同時,是否會即時同步更新被修改的文字到 DataMember? 底下是效果比較。

OnValidation

OnPropertyChanged

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學