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); }