2
0
Files

31 lines
877 B
C#
Raw Permalink Normal View History

2022-05-23 00:58:58 +08:00
using System.ComponentModel;
using System.Runtime.CompilerServices;
2023-07-03 01:51:09 +08:00
namespace CMM.Library.Base;
public class PropertyBase : INotifyPropertyChanged
2022-05-23 00:58:58 +08:00
{
2023-07-03 01:51:09 +08:00
public event PropertyChangedEventHandler PropertyChanged;
2022-05-23 00:58:58 +08:00
2023-07-03 01:51:09 +08:00
virtual internal protected void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
2022-05-23 00:58:58 +08:00
{
2023-07-03 01:51:09 +08:00
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
2022-05-23 00:58:58 +08:00
}
2023-07-03 01:51:09 +08:00
}
2022-05-23 00:58:58 +08:00
2023-07-03 01:51:09 +08:00
protected void NotifyPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
2022-05-23 00:58:58 +08:00
2023-07-03 01:51:09 +08:00
protected void SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null)
{
if (object.Equals(storage, value)) return;
2022-05-23 00:58:58 +08:00
2023-07-03 01:51:09 +08:00
storage = value;
this.OnPropertyChanged(propertyName);
2022-05-23 00:58:58 +08:00
}
}