private void EditServiceTypeContextMenuClick(object sender, RoutedEventArgs e) { var comboBox = (ComboBox)((ContextMenu)((FrameworkElement)sender).Parent).PlacementTarget; var selectedItem = comboBox.SelectedItem as ServiceType; var serviceTypeDetailedWindow = CreateDetailedWindow(selectedItem); serviceTypeDetailedWindow.ShowDialog(); if (!serviceTypeDetailedWindow.DialogResult ?? false) { return; } selectedItem = serviceTypeDetailedWindow.serviceType; int i = ServiceTypes.FindIndex(st => st.Id == selectedItem.Id); ServiceTypes[i] = selectedItem; comboBox.SelectedIndex = -1; comboBox.Items.Refresh(); comboBox.SelectedIndex = i; }