using System.ComponentModel; using System.Runtime.CompilerServices; using System.Xml.Serialization; using Announcements.Properties; namespace Announcements { [XmlRoot(Namespace = "urn:winify-announcement-toasts-schema", ElementName = "AnnouncementToasts")] public class AnnouncementToasts : INotifyPropertyChanged { #region Private Delegates, Events, Enums, Properties, Indexers and Fields private BindingListWithCollectionChanged _announcementToasts = new BindingListWithCollectionChanged(); #endregion #region Public Enums, Properties and Fields [XmlElement(ElementName = "AnnouncementToast")] public BindingListWithCollectionChanged AnnouncementToast { get => _announcementToasts; set { if (Equals(value, _announcementToasts)) return; _announcementToasts = value; OnPropertyChanged(); } } #endregion #region Interface public event PropertyChangedEventHandler PropertyChanged; #endregion #region Private Methods [NotifyPropertyChangedInvocator] protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } }