您的位置:首页 > 运维架构

WPFINotifyPropertyChanged使用技巧

2016-05-05 23:12 501 查看
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
}


全部代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: