using System.ComponentModel; using System.Runtime.CompilerServices; using System.Xml.Serialization; using Configuration.Properties; namespace Configuration { [XmlRoot(ElementName = "Discharge")] public class Discharge : INotifyPropertyChanged { #region Public Events & Delegates public event PropertyChangedEventHandler PropertyChanged; #endregion #region Public Enums, Properties and Fields [XmlElement(ElementName = "RelativeMouseMovement")] public bool UseRelativeMouseMovement { get => _relativeMouseMovement; set { if (value == _relativeMouseMovement) { return; } _relativeMouseMovement = value; OnPropertyChanged(); } } #endregion #region Private Delegates, Events, Enums, Properties, Indexers and Fields private bool _relativeMouseMovement; #endregion #region Constructors, Destructors and Finalizers [UsedImplicitly] public Discharge() { } #endregion #region Private Methods protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } }