void _devices_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { // Ensure that at least one Firmata device is selected bool found = false; foreach (var item in _devices) { if (item is FirmataTargetDeviceViewModel) { var candidate = (FirmataTargetDeviceViewModel)item; if (candidate.IsConnected) { found = true; break; } } } if (!found) { foreach (var item in _devices) { if (item is FirmataTargetDeviceViewModel) { var candidate = (FirmataTargetDeviceViewModel)item; candidate.IsConnected = true; _dm.SetFirmataTarget(candidate.Source); found = true; } } } // There are no firmata targets - may sure we are not referencing one that was deleted if (!found) { _dm.SetFirmataTarget(null); } }