Какое событие подходит для захвата «Клика» в ListBox на Windows Phone 7? - PullRequest
3 голосов
/ 10 января 2011

Я пишу приложение для Windows Phone 7 с ListBox.Когда элемент в ListBox «нажимается» или «ударяется» пальцем, каково правильное событие, чтобы перехватить это?

Я пробовал «SelectedIndexChanged», но, похоже, срабатывает на GoBack ()приложение TombStoned, и передается индекс 0 (что выглядит странно).

В настоящее время я использую MouseUp, который, кажется, делает свое дело.Но я не уверен, что это правильно.

Примечание: я обнаружил причину, по которой SelectionChanged срабатывал при нажатии назад.Когда конструктор для моей страницы запускался, а ItemSouce для моего ListBox был установлен (привязан к данным), который выберет первый элемент в списке и вызовет событие SelectionChanved.Поскольку это не было инициировано действием пользователя, я решил эту проблему, просто создав логическое значение IsLoaded и установив его в значение true после установки ItemSource в конструкторе, а затем проверив это в событии.

1 Ответ

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

Если вы хотите получать уведомления о выборе элемента, вы должны перехватить событие SelectionChanged.

В обработчике вы проверяете, что e.AddedItems содержит ровно один элемент:

void SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (e.AddedItems.Count == 1)
    {
        // .. do something
    }
}

В GoBack () у вас, вероятно, есть элементы в коллекции e.RemovedItems, но нет элементов в e.AddedItems.

...