星空网 > 软件开发 > ASP.net

WPFINotifyPropertyChanged使用技巧

WPFINotifyPropertyChanged使用技巧

 

WPFINotifyPropertyChanged使用技巧WPFINotifyPropertyChanged使用技巧
public class NotifyPropertyChanged : INotifyPropertyChanged{public event PropertyChangedEventHandler PropertyChanged;public void NotifyChanged(string propertyName){if (PropertyChanged != null){PropertyChanged(this, new PropertyChangedEventArgs(propertyName));}}

传统使用方法

这种方式称之为一般的实现方式, 因为它确实是太普通不过了, 而且使用起来也让人感到厌恶, 因为必须指定手工指定属性名称:如需要实现的属性过多,

则指定属性名是非常繁琐,无聊,容易出错,并且会使代码累赘。

于是通过另一种方式减少代码输入(本质就是传递当前发生改变属性的名称):

 

WPFINotifyPropertyChanged使用技巧WPFINotifyPropertyChanged使用技巧
 #region 引发指定属性更改事件    /// <summary>     /// 引发指定属性更改事件     /// </summary>     public virtual void RaisePropertyChanged()    {      /*       * 1.取当前调用堆栈的上一个方法(一般为属性内部的SetMethod)       * 2.目前CLR对属性SetMethod方法的命名规则为“set_” + 属性名       * 3.只要CLR依旧保持着这个命名规则,我们就可以自动忽略参数了       */      var stack = new StackTrace();      var lastFrame = stack.GetFrame(1);      var methodName = lastFrame.GetMethod().Name;      var propertyName = methodName.Substring(methodName.LastIndexOf('_') + 1);      this.NotifyChanged(propertyName);    }     #endregion

简单实现方式

 

WPFINotifyPropertyChanged使用技巧WPFINotifyPropertyChanged使用技巧
 /// <summary>  /// 实现INotifyPropertyChanged 向客户端发出某一属性值已更改的通知  /// </summary>  [SerializableAttribute]  public class NotifyPropertyChanged : INotifyPropertyChanged  {    public event PropertyChangedEventHandler PropertyChanged;    public void NotifyChanged(string propertyName)    {      if (PropertyChanged != null)      {        PropertyChanged(this, new PropertyChangedEventArgs(propertyName));      }    }    #region 引发指定属性更改事件    /// <summary>     /// 引发指定属性更改事件     /// </summary>     public virtual void RaisePropertyChanged()    {      /*       * 1.取当前调用堆栈的上一个方法(一般为属性内部的SetMethod)       * 2.目前CLR对属性SetMethod方法的命名规则为“set_” + 属性名       * 3.只要CLR依旧保持着这个命名规则,我们就可以自动忽略参数了       */      var stack = new StackTrace();      var lastFrame = stack.GetFrame(1);      var methodName = lastFrame.GetMethod().Name;      var propertyName = methodName.Substring(methodName.LastIndexOf('_') + 1);      this.NotifyChanged(propertyName);    }     #endregion  }

全部代码

 




原标题:WPFINotifyPropertyChanged使用技巧

关键词:wpf

wpf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

寄寄快递到马来西亚:https://www.goluckyvip.com/tag/90518.html
马来西亚的物流:https://www.goluckyvip.com/tag/90519.html
马来西亚托运:https://www.goluckyvip.com/tag/90520.html
物流回马来西亚:https://www.goluckyvip.com/tag/90521.html
国内发马来西亚物流:https://www.goluckyvip.com/tag/90522.html
发马来西亚的快递:https://www.goluckyvip.com/tag/90523.html
永康白云风景区怎么走 白云山风景区怎么去??:https://www.vstour.cn/a/363181.html
2022世界杯门票如何买?:https://www.vstour.cn/a/363182.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流