傳統寫法需在 Leave 事件手動同步控制項與資料物件,程式碼重複且易漏處理事件:
textBoxName.Text = myDataValue.Name;
this.textBoxName.Leave += (s, e) => myDataValue.Name = textBoxName.Text;
資料繫結單行搞定:
textBoxName.DataBindings.Add("Text", myDataValue, "Name");
內部由 BindingManager 與 CurrencyManager 實現雙向傳輸。
傳統寫法需在多處事件呼叫變色邏輯,易遺漏。資料繫結只需在資料物件加入 ForegroundColor 屬性:
private Color _clr = Color.Black;
public Color ForegroundColor { get { return _clr; } }
private string _txtToDisplay;
public string Text
{
get { return _txtToDisplay; }
set
{
_txtToDisplay = value;
UpdateDisplayColor(IsTextValid());
}
}
private void UpdateDisplayColor(bool valid) => _clr = valid ? Color.Black : Color.Red;
繫結 textBox1.ForeColor 至 ForegroundColor,UI 自動隨資料狀態變色,無需手動事件處理。