private void ButtonAttachCaretakerClicked(object sender, RoutedEventArgs e) { // Check if values exist for the baby and caretaker if (cbBabies.SelectedIndex == -1 || cbCaretakers.SelectedIndex == -1) { TriggerAttachmentError(); return; } // Get selected baby Baby baby = ((cbBabies.SelectedItem as ComboboxItem <Baby>)?.Value); // Get selected caretaker Caretaker caretaker = ((cbCaretakers.SelectedItem as ComboboxItem <Caretaker>)?.Value); // Trigger error if an unknown value was found if (baby == null || caretaker == null) { TriggerAttachmentError(); return; } // Attach caretaker to baby monitor baby.AssignNurse(_nurse); baby.AttachCaretaker(new AddressData(caretaker.Name, caretaker.Address)); // Start listening for unsubscribe and help requests _ = Task.Run(() => ListenForHelpRequest(baby)); baby.CaretakerUnsubscribed += ct => ListenForUnsubscribe(ct); }