可复制粘贴直接使用:
1、创建类文件:NotifyObjectChanged.cs
2、.cs内容如下:
using System.ComponentModel;
namespace InstrumentUtilityDotNet
{
public class NotifyObjectChanged : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
/// 属性发生改变时调用该方法发出通知
/// </summary>
/// <param name="propertyName">属性名称</param>
public void RaisePropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
protected virtual void SetAndNotifyIfChanged<T>(string propertyName, ref T oldValue, T newValue)
{
if (oldValue == null && newValue == null)
{
return;
}
if (oldValue != null && oldValue.Equals(newValue))
{
return;
}
if (newValue != null && newValue.Equals(oldValue))
{
return;
}
oldValue = newValue;
RaisePropertyChanged(propertyName);
}
}
}
3、使用:
创建model类: ToneModel
public class ToneModel: NotifyObjectChanged
{
private string _addrSpec = "192.168.9.61";
public string addrSpec
{
get => _addrSpec;
set
{
if (_addrSpec != value)
{
_addrSpec = value;
RaisePropertyChanged("addrSpec");
}
}
}
}
需要配合binding使用,xaml部分就不展示了,可自行问度娘~~