dragon-iso/src/TeamsISO.App/ViewModels/ObservableObject.cs
2026-05-07 15:39:46 +00:00

23 lines
791 B
C#

using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace TeamsISO.App.ViewModels;
/// <summary>
/// Minimal MVVM base class implementing <see cref="INotifyPropertyChanged"/>.
/// </summary>
public abstract class ObservableObject : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string? propertyName = null) =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
protected bool SetField<T>(ref T field, T value, [CallerMemberName] string? propertyName = null)
{
if (EqualityComparer<T>.Default.Equals(field, value)) return false;
field = value;
OnPropertyChanged(propertyName);
return true;
}
}