1
0
Fork 0
mirror of https://github.com/hawkeye-stan/msfs-popout-panel-manager.git synced 2024-12-01 18:20:10 +00:00
msfs-popout-panel-manager/DomainModel/Profile/RefocusOnDisplay.cs

48 lines
1.8 KiB
C#
Raw Normal View History

2023-07-23 05:13:23 +00:00
using MSFSPopoutPanelManager.Shared;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace MSFSPopoutPanelManager.DomainModel.Profile
{
public class RefocusOnDisplay : ObservableObject
{
public RefocusOnDisplay()
{
IsEnabled = false;
Monitors = new ObservableCollection<MonitorInfo>();
Monitors.CollectionChanged += (sender, e) =>
{
switch (e.Action)
{
case System.Collections.Specialized.NotifyCollectionChangedAction.Add:
if (e.NewItems[0] == null)
return;
((MonitorInfo)e.NewItems[0]).PropertyChanged += (sender, e) =>
{
var evtArg = e as PropertyChangedExtendedEventArgs;
if (!evtArg.DisableSave)
base.OnPropertyChanged(sender, e);
};
base.OnPropertyChanged(sender, new PropertyChangedEventArgs("Monitors"));
break;
case System.Collections.Specialized.NotifyCollectionChangedAction.Remove:
case System.Collections.Specialized.NotifyCollectionChangedAction.Move:
case System.Collections.Specialized.NotifyCollectionChangedAction.Replace:
case System.Collections.Specialized.NotifyCollectionChangedAction.Reset:
base.OnPropertyChanged(sender, new PropertyChangedEventArgs("Monitors"));
break;
}
};
InitializeChildPropertyChangeBinding();
}
public bool IsEnabled { get; set; }
public ObservableCollection<MonitorInfo> Monitors { get; set; }
}
}