public async void OnZonesFound(object sender, EventArgs <ObservableCollection <ZoneViewModel> > e) { await DispatcherHelper.ExecuteOnUIThreadAsync(async() => { if ((ZoneViewModels?.Count() ?? 0) > 0) { ZoneViewModels.Clear(); } //Get saved settings ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; string udn = localSettings.Values["ACTIVEZONE"] as string; //Check is there were settings //If not, get UDN from active Renderer if (string.IsNullOrEmpty(udn)) { udn = PivotItemViewModel.ActiveRenderer?.UDN ?? string.Empty; } bool notChecked = true; ZoneViewModel zone = null; if ((e?.Value?.Count() ?? 0) > 0) { foreach (var vm in e.Value) { vm.IsActive = false; //Save pointer to previous selected zone if (notChecked) { zone = vm; if (udn == vm.Udn) { notChecked = false; } } ZoneViewModels.Add(vm); } if (zone.MediaRenderer != null) { zone.IsActive = true; } await Task.Delay(TimeSpan.FromMilliseconds(500)); foreach (var vm in ZoneViewModels) { await vm.InitVolumes(); } } }); }
public void ComboBoxLoaded(ComboBox obj) { bool handled = false; for (int i = 0; i < (ZoneViewModels?.Count() ?? 0); i++) { if (ZoneViewModels[0].IsActive) { obj.SelectedIndex = i; handled = true; break; } } if (!handled && (ZoneViewModels?.Count ?? 0) > 0) { obj.SelectedIndex = 0; ZoneViewModels[0].IsActive = true; } }