Device properties - Repopulate LED tab each time it opens

Core - Save device before reloading provider for layout reset
This commit is contained in:
Robert committed 2021-06-13 10:37:18 +02:00
1 parent 10c80fb9c2
commit 6e197d725a
2 files changed
+8 -6

No files matched your search

+4
View File
@@ -386,6 +386,10 @@ namespace Artemis.Core.Services
private void ReloadDevice(ArtemisDevice device)
{
// Any pending changes are otherwise lost including DisableDefaultLayout
device.ApplyToEntity();
_deviceRepository.Save(device.DeviceEntity);
DeviceProvider deviceProvider = device.DeviceProvider;
// Feels bad but need to in order to get the initial LEDs back
@@ -30,22 +30,20 @@ namespace Artemis.UI.Screens.Settings.Device.Tabs
#region Overrides of Screen
/// <inheritdoc />
protected override void OnInitialActivate()
protected override void OnActivate()
{
BindableCollection<ArtemisLed> selectedLeds = ((DeviceDialogViewModel) Parent).SelectedLeds;
LedViewModels.Clear();
LedViewModels.AddRange(Device.Leds.Select(l => new DeviceLedsTabLedViewModel(l, selectedLeds)));
selectedLeds.CollectionChanged += SelectedLedsOnCollectionChanged;
base.OnInitialActivate();
base.OnActivate();
}
/// <inheritdoc />
protected override void OnClose()
protected override void OnDeactivate()
{
((DeviceDialogViewModel) Parent).SelectedLeds.CollectionChanged -= SelectedLedsOnCollectionChanged;
base.OnClose();
base.OnDeactivate();
}
#endregion