Событие изменения комбо wpf, запускаемое при загрузке формы - PullRequest
0 голосов
/ 31 января 2011

У меня проблема при загрузке окна, событие 'selection_change', связанное с элементом управления 'combo box', запускается при первой загрузке окна. Почему это происходит и как его ограничить, пожалуйста?

Привет

Ответы [ 2 ]

2 голосов
/ 31 января 2011

С этим кодом событие SelectionChanged не будет инициировано. Создайте новый проект, вставьте его и попробуйте сами.

Мое предположение почти такое же, как у Sekhar _ Pro , вы заполняете свой ComboBox из кода позади, и что-то там вызывает изменение SelectedItem , Исследуйте cmbUsers.SelectedItem в обработчике cmbUsers_SelectionChanged, чтобы увидеть, имеет ли оно какое-либо значение или равно нулю в отладчике. Кроме того, посмотрите в стеке вызовов, чтобы найти причину возникновения этого события.

Пример кода

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());
        }
    }
}

Стек вызовов выглядит для меня в обработчике событий

enter image description here

0 голосов
/ 31 января 2011

Это не нормальное поведение, в некоторых случаях вы должны делать что-то вроде установки SelectedItem и т. Д., Что, в свою очередь, вызывает событие. Внимательно проверьте события жизненного цикла вашей формы и убедитесь, что вы делаете что-то подобное, может быть в событии Load или Activate или где-то в Конструкторах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...