using System.ComponentModel; using System.Runtime.CompilerServices; namespace EmbyToolbox.Models; public sealed class MergeFileItem : INotifyPropertyChanged { private int _number; private string _partName = string.Empty; private string _status = "Готов"; private bool _partNameUserOverride; public string FullPath { get; init; } = string.Empty; public string FileName { get; init; } = string.Empty; public int SizeMb { get; init; } public int Number { get => _number; set { if (_number == value) { return; } _number = value; OnPropertyChanged(); } } public string PartName { get => _partName; set { if (_partName == value) { return; } _partName = value; _partNameUserOverride = true; OnPropertyChanged(); } } /// Авто-подпись части при перестановке строк; не затирает имя, если пользователь правил вручную. public void SyncAutoPartName(string value) { if (_partNameUserOverride) { return; } if (_partName == value) { return; } _partName = value; OnPropertyChanged(); } public string Status { get => _status; set { if (_status == value) { return; } _status = value; OnPropertyChanged(); } } public event PropertyChangedEventHandler? PropertyChanged; private void OnPropertyChanged([CallerMemberName] string? propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } }