2016-06-28 1 views
0

Мне нужно поймать событие, когда пользователь выбирает элемент из поля со списком. После прочтения некоторые ответы здесь, на StackOverflow я использовал этот метод (XAML):Событие события ComboBox происходит даже тогда, когда пользователь не выбирает элемент

SelectionChanged="LocationBox_SelectionChanged" 

и обработчик событий в C#:

private void LocationBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 

Проблема в том, что этот обработчик событий становится споткнулся несколько раз, как ComboBox создается динамически, а не когда пользователь выбирает элемент. Кстати, этот метод корректно работает, когда пользователь выбирает элемент. Проблема заключается в всех этих посторонних событиях.

Я хочу, чтобы обработчик события вызывался только тогда, когда пользователь выбирает элемент из выпадающего списка. Я не хочу, чтобы обработчик события вызывался, когда combobox динамически создается до его отображения. Кажется, что каждый раз, когда элемент добавляется в поле со списком, он отключает обработчик события. Я хочу, чтобы обработчик события был отключен IFF, человек делает выбор из выпадающего списка.

Предложения? Благодарю.

+0

Вы действительно не описали проблему, а только симптом. Почему это проблема, вызванная событием и чего вы хотите достичь здесь? –

+0

Вы все еще не объяснили, почему это проблема. –

+0

Это проблема, потому что, когда она ложно сообщает о событии пользователя, мой код хотел бы что-то сделать с выбранным пользователем индексом. Однако, поскольку пользователь фактически ничего не выбрал, событие и последующий индекс ошибочны, вызывая сбои. – zetar

ответ

0

Непонятно о выбореChanged сигнал. Вы всегда можете использовать QObject: blockSignals во время редактирования QComboBox?

+0

QT? Это в WPF. – zetar

+0

Bugger. Извинения @zetar - должны будут проверять мои фильтры и читать теги :( –

+0

Не навредил. – zetar

-1

Это проблема, потому что, когда она ложно сообщает о событии пользователя, мой код хотел бы что-то сделать с выбранным пользователем индексом. Однако, поскольку пользователь фактически ничего не выбрал, событие и последующий индекс ошибочны, вызывая сбои.

return Просто из обработчика событий немедленно в случае SelectedItem == null или SelectedIndex == -1.

+0

SelectedIndex НЕ возвращает null. Он возвращает 0, -1, 0, -1, 0, -1 – zetar

+0

Вот что я написал, обратите внимание. –

+0

Потому что мне нужно знать, выбрал ли пользователь элемент 0. Вы понимаете, что index = 0 является законным значением индекса, правильно? – zetar

Смежные вопросы