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

  • 相关阅读:
    MinGW GCC 7.1.0 2017年6月份出炉啦
    java面试题-框架篇九
    spring-AOP原理
    spring的bean管理(注解)
    23种设计模式(1)-单例模式
    SSH框架面试题集锦
    JQuery基础
    实现用户注册
    spring与hibernate的整合
    spring-IOC理解1
  • 原文地址:https://www.cnblogs.com/liweiaila/p/10561591.html
Copyright © 2020-2023  润新知