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

猜你喜欢

转载自www.cnblogs.com/liweiaila/p/10561591.html