private void DeviceLayoutViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            // Handle changing selected LED from listbox
            if (e.PropertyName == nameof(SelectedLed) && SelectedLed != null && !SelectedLed.Selected)
            {
                var oldSelection = LedViewModels.FirstOrDefault(l => l.Selected);
                if (oldSelection != null)
                {
                    oldSelection.Selected = false;
                    oldSelection.SetColor(LedViewModel.UnselectedColor);
                }

                SelectLed(SelectedLed);
            }
        }
        public void RemoveLed()
        {
            if (SelectedLed != null)
            {
                var ledToRemove = SelectedLed;

                // Remove from view
                LedViewModels.Remove(ledToRemove);
                // Remove from image layouts
                foreach (var imageLayout in DeviceLayout.LedImageLayouts)
                {
                    imageLayout.LedImages.RemoveAll(i => i.Id.Equals(ledToRemove.LedLayout.Id));
                }
                // Remove from layout
                DeviceLayout.Leds.Remove(ledToRemove.LedLayout);
                SelectLed(null);
                UpdateLeds();
            }
        }
        public void FinishAddLed(bool addBefore, string ledId)
        {
            int index;

            if (SelectedLed == null)
            {
                if (addBefore)
                {
                    index = 0;
                }
                else
                {
                    index = LedViewModels.Count;
                }
            }
            else
            {
                if (addBefore)
                {
                    index = LedViewModels.IndexOf(SelectedLed);
                }
                else
                {
                    index = LedViewModels.IndexOf(SelectedLed) + 1;
                }
            }

            var ledLayout = new LedLayout {
                Id = ledId
            };
            var ledViewModel = new LedViewModel(Model, this, _windowManager, ledLayout);

            DeviceLayout.Leds.Insert(index, ledLayout);
            LedViewModels.Insert(index, ledViewModel);

            UpdateLeds();
            SelectLed(ledViewModel);
        }