winform數據綁定


簡單數據綁定

控件的屬性和對象的屬性綁定在一起。

控件 ------ 對象

控件屬性 ------ 對象屬性

控件屬性值 ----- 對象屬性值

效果:

控件屬性值改變,對象屬性值也跟着改變;對象屬性值改變,控件屬性值也跟着改變。

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; }
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM