Проблема с событием Selection для списка в Windows Phone - PullRequest
2 голосов
/ 06 марта 2012

У меня есть список с несколькими элементами. И событие измененного выбора было сопоставлено с функцией. Но каждый раз, когда я выбираю элемент списка, событие запускается дважды. В результате я получаю выбранный индекс как -1 во втором раунде.

кто-нибудь знает причину такого поведения?
Код XAML

&ltListBox ItemTemplate="{StaticResource productTemplate}" Name="lstItems" SelectionChanged="ShowProductDetails"&gt


Код C #


private void ShowProductDetails(object sender, SelectionChangedEventArgs e)
{
    Item item = lstItems.SelectedItem as Item;
    int index = lstItems.SelectedIndex;
}

1 Ответ

6 голосов
/ 06 марта 2012

Событие изменения выбора происходит каждый раз, когда изменяется выбор (либо из пользовательского ввода, либо нет)

При перезагрузке списка выбор изменяется (наиболее вероятно, -1)

этот кодниже проверяет, что пользователь выбрал что-то (элемент с действительным индексом, т.е. не -1), затем запускает код.

    private void ShowProductDetails(object sender, SelectionChangedEventArgs e)
    {
        if(lstItems.SelectedIndex != -1)
        {
            Item item = lstItems.SelectedItem as Item;
            int index = lstItems.SelectedIndex;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...