using System.Collections.Generic; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Xml.Serialization; namespace Configuration { [XmlRoot(ElementName = "Images")] public class Images : INotifyPropertyChanged { private List _image = new List { }; [XmlElement(ElementName = "Image")] public List Image { get => _image; set { if (Equals(value, _image)) { return; } _image = value; OnPropertyChanged(); } } public Images(IEnumerable mimeTypes) : this() { Add(mimeTypes); } public Images() { } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } protected bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) { if (EqualityComparer.Default.Equals(field, value)) return false; field = value; OnPropertyChanged(propertyName); return true; } public void Add(IEnumerable mimeTypes) { foreach (var mimeType in mimeTypes) { if (!_image.Contains(mimeType)) { _image.Add(mimeType); } } } } }