[WPF]实现了INotifyPropertyChanged的基类

语言类型:c#;

项目类型:WPF;

使用场景:1.

使用方式:1.使用时继承此类;

                  2.在VM的属性中的编码如下:

1. { get { return this.OnPropertyChanged(()=>PropertyName); } }

2. { get { return this.OnPropertyChanged("PropertyName"); } }

3. { get { return this.OnPropertyChanged(nameof(Property)); } }

主要代码如下:


    /// 
    /// Mvvm数据对象的基类
    /// 
    public class BasicMvvmObject : System.ComponentModel.INotifyPropertyChanged
    {

        ///  在属性更改时发生 
        public virtual event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;

        /// 
        /// 属性值变化时发生
        /// 
        /// 属性名称
        protected virtual void _OnPropertyChanged(string propertyName)
        {
            this.PropertyChanged?.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
        }

        /// 
        /// 属性值变化时发生
        /// 
        /// 指向的表达式
        protected virtual void _OnPropertyChanged(Expression> propertyExp)
        {
            var _propertyName = (propertyExp.Body as MemberExpression).Member.Name;
            this._OnPropertyChanged(_propertyName);
        }


    }

 

 

 

你可能感兴趣的:(C#,WPF,.Net)