簡單數據綁定
控件的屬性和對象的屬性綁定在一起。
控件 ------ 對象
控件屬性 ------ 對象屬性
控件屬性值 ----- 對象屬性值
效果:
控件屬性值改變,對象屬性值也跟着改變;對象屬性值改變,控件屬性值也跟着改變。
1.控件從后台找到對象,顯示對象
2.雙方任意一方的屬性改變,就會改變另外一方的屬性。
using System.ComponentModel; namespace TempTest { /// <summary> /// 要實現雙向綁定需要繼承System.ComponentModel.INotifyPropertyChange接口。若不繼承此接口則只能單向綁定,對對象屬性值的更改不會通知控件更新。 /// </summary> class Person : INotifyPropertyChanged { #region 屬性 public string Name { get => mName; set { mName = value; SendChangeInfo("Name"); } } public string Address { get => mAddress; set { mAddress = value;SendChangeInfo("Address"); } } public int Age { get => mAge; set { mAge = value; SendChangeInfo("Age"); } } #endregion private string mName; private string mAddress; private int mAge; /// <summary> /// 屬性改變后需要調用的方法,觸發PropertyChanged事件。 /// </summary> /// <param name="propertyName">屬性名</param> private void SendChangeInfo(string propertyName) { if (this.PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } /// <summary> /// 實現的接口。 /// </summary> public event PropertyChangedEventHandler PropertyChanged; } }
Binding bingding = new Binding("Text", person, "Name"); this.textBox1.DataBindings.Add(bingding);
// // 摘要: // 在數據綁定控件的值更改時發生。 public event ConvertEventHandler Parse; // // 摘要: // 表示將處理的方法 System.Windows.Forms.Binding.Parse 和 System.Windows.Forms.Binding.Format // 事件 System.Windows.Forms.Binding。 // // 參數: // sender: // 事件源。 // // e: // 包含事件數據的 System.Windows.Forms.ConvertEventArgs。 public delegate void ConvertEventHandler(object sender, ConvertEventArgs e); // // 摘要: // 提供有關 System.Windows.Forms.Binding.Format 和 System.Windows.Forms.Binding.Parse // 事件的數據。 public class ConvertEventArgs : EventArgs { // // 摘要: // 初始化 System.Windows.Forms.ConvertEventArgs 類的新實例。 // // 參數: // value: // System.Object ,其中包含當前屬性的值。 // // desiredType: // System.Type 的值。 public ConvertEventArgs(object value, Type desiredType); // // 摘要: // 獲取或設置的值 System.Windows.Forms.ConvertEventArgs。 // // 返回結果: // System.Windows.Forms.ConvertEventArgs 的值。 public object Value { get; set; } // // 摘要: // 獲取所需值的數據類型。 // // 返回結果: // System.Type 的所需的值。 public Type DesiredType { get; } }