public void OverlayAllProfilesToDevice() { var mergedModeProfiles = new Dictionary <int, ObservableCollection <IHotasBaseMap> >(); var deviceButtons = new ObservableCollection <IHotasBaseMap>(); SeedButtonMapProfileFromDeviceCapabilities(deviceButtons); foreach (var p in ModeProfiles) { var d = deviceButtons.ToObservableCollection();//make a copy since we could have more than 1 profile and we don't need to rescan caps mergedModeProfiles.Add(p.Key, MergeMaps(d, p.Value)); } ModeProfiles = mergedModeProfiles; _hotasQueue.SetModeProfiles(ModeProfiles); }