public AcquisitionMonitor()
        {
            Location = "";
            Status = MonitorStatus.Idle;
            ExpectedChannelCount = 2;
            Days = new List<TileDay>();
            Lattice = new LatticeData();
            Lattice.PropertyChanged += (sender, eventArgs) =>
            {
                OnPropertyChanged(eventArgs);
            };

            ZIndexZValueMap = new Dictionary<int, double>();

            Lattice.DuplicateCollectionChanged += (s, e) =>
            {
                TileChangedMonitorContext ctx = new TileChangedMonitorContext(null, TileStateChangeAction.Duplicate);
                ctx.MonitorId = Id;
                RaiseTileDataChanged(new TileChangedEventArgs(ctx));
            };
        }
        public TileChangedEventArgs(Tile tile, TileStateChangeAction action)
        {
            _context = new TileChangedMonitorContext(tile, action);

            _context._day.Tile = tile;
        }
 public TileChangedEventArgs(TileChangedMonitorContext context)
 {
     _context = context;
 }