/
Yaroslav4444-bauer
/
ArmyFight
Обзор
Документация
Войти
/
Yaroslav4444-bauer
/
ArmyFight
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
ViewModels/BaseViewModel.cs
37 строк
2 KB
Yaroslav4444-bauer
Добовлены комментарии summary
01 июн 2026, 12:38
01 июн 2026, 12:38
70196b7
Код
Авторство
О чём код?
using System.Collections.Generic; using System.ComponentModel; using System.Runtime.CompilerServices; namespace ArmyFight.ViewModels { /// <summary> /// Базовая модель представления с уведомлением об изменении свойств (INotifyPropertyChanged). /// </summary> public abstract class BaseViewModel : INotifyPropertyChanged { public event PropertyChangedEventHandler? PropertyChanged; /// <summary> /// Устанавливает поле и уведомляет UI, если значение изменилось. /// </summary> /// <typeparam name="T">Тип свойства.</typeparam> /// <param name="field">Ссылка на поле.</param> /// <param name="value">Новое значение.</param> /// <param name="name">Имя свойства (подставляется автоматически).</param> /// <returns>true, если значение обновлено.</returns> protected bool Set<T>(ref T field, T value, [CallerMemberName] string? name = null) { if (EqualityComparer<T>.Default.Equals(field, value)) return false; field = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); return true; } /// <summary> /// Явно уведомляет привязки об изменении свойства. /// </summary> /// <param name="name">Имя свойства.</param> protected void Notify([CallerMemberName] string? name = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } }