using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace Configuration { [XmlRoot(ElementName = "InboundDragDrop")] public class InboundDragDrop : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private string _dragDropConvertType = "image/png"; private DragDropConvertExclude _dragDropConvertExclude = new DragDropConvertExclude(new string[] { "image/gif" }); private bool _convertOnDragDrop = false; private bool _copyOnDragDrop = false; [XmlElement(ElementName = "DragDropConvertType")] public string DragDropConvertType { get => _dragDropConvertType; set { if (Equals(value, _dragDropConvertType)) return; _dragDropConvertType = value; OnPropertyChanged(); } } [XmlElement(ElementName = "DragDropConvertExclude")] public DragDropConvertExclude DragDropConvertExclude { get => _dragDropConvertExclude; set { if (Equals(value, _dragDropConvertExclude)) return; _dragDropConvertExclude = value; OnPropertyChanged(); } } [XmlElement(ElementName = "ConvertOnDragDrop")] public bool ConvertOnDragDrop { get => _convertOnDragDrop; set { if (value == _convertOnDragDrop) return; _convertOnDragDrop = value; OnPropertyChanged(); } } [XmlElement(ElementName = "CopyOnDragDrop")] public bool CopyOnDragDrop { get => _copyOnDragDrop; set { if (value == _copyOnDragDrop) return; _copyOnDragDrop = value; OnPropertyChanged(); } } 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; } } }