Spring – Rev 1
?pathlinks?
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Xml.Serialization;
using Configuration.Properties;
namespace Configuration
{
[XmlRoot(ElementName = "Configuration")]
public class Configuration : INotifyPropertyChanged
{
#region Public Events & Delegates
public event PropertyChangedEventHandler PropertyChanged;
#endregion
#region Public Enums, Properties and Fields
[XmlElement(ElementName = "BoundButton")]
public List<string> BoundButton
{
get => _boundButton;
set
{
if (Equals(value, _boundButton))
{
return;
}
_boundButton = value;
OnPropertyChanged();
}
}
[XmlElement(ElementName = "BoundSpeedButton")]
public List<string> BoundSpeedButton
{
get => _boundSpeedButton;
set
{
if (Equals(value, _boundSpeedButton))
{
return;
}
_boundSpeedButton = value;
OnPropertyChanged();
}
}
[XmlElement(ElementName = "BoundSlowButton")]
public List<string> BoundSlowButton
{
get => _boundSlowButton;
set
{
if (Equals(value, _boundSlowButton))
{
return;
}
_boundSlowButton = value;
OnPropertyChanged();
}
}
[XmlElement(ElementName = "Spring")]
public Spring Spring
{
get => _spring;
set
{
if (Equals(value, _spring))
{
return;
}
_spring = value;
OnPropertyChanged();
}
}
[XmlElement(ElementName = "HUD")]
public HUD HUD
{
get => _hud;
set
{
if (Equals(value, _hud))
{
return;
}
_hud = value;
OnPropertyChanged();
}
}
#endregion
#region Private Delegates, Events, Enums, Properties, Indexers and Fields
private List<string> _boundButton = new List<string>();
private List<string> _boundSlowButton = new List<string>();
private List<string> _boundSpeedButton = new List<string>();
private HUD _hud = new HUD();
private Spring _spring = new Spring();
#endregion
#region Constructors, Destructors and Finalizers
[UsedImplicitly]
public Configuration()
{
}
#endregion
#region Private Methods
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
}