С этим кодом событие SelectionChanged
не будет поднято. Создайте новый проект, вставьте его и попробуйте сами.
Мое предположение в значительной степени так же, как Sekhar _ Pro «s, вы заселение ваш ComboBox
из кода позади, и что-то там вызывает SelectedItem изменить. Исследуйте cmbUsers.SelectedItem
в обработчике события cmbUsers_SelectionChanged
, чтобы узнать, имеет ли он какое-либо значение или имеет значение null в отладчике. Кроме того, посмотрите в стек вызовов, чтобы узнать, что вызвало это событие.
Пример кода
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
cmbUsers.Items.Add(new ComboBoxItem { Content = "Test" });
cmbUsers.SelectedIndex = 0;
}
private void cmbUsers_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (cmbUsers.SelectedItem != null)
{
MessageBox.Show(cmbUsers.SelectedItem.ToString());
}
}
}
The Call Stack выглядит, как это для меня в обработчик событий
![enter image description here](https://i.stack.imgur.com/DAfS6.png)
Вы уверены, что вы не программно настройки выбранного элемента из combo-box в конструкторе или какое-то другое место в вашем коде? Если вы это сделаете, произойдет событие. –
вы можете показать нам код, в котором вы имеете дело с Combobox, может быть, вы делаете то, что запускает событие ... –
@shekhar, ничего особенного, только это в файле xaml: , а соответствующая функция в коде позади - gettting. –
Rana