Нажмите обработчик событий - PullRequest
1 голос
/ 22 августа 2011

Кажется, что нет Нажмите Обработчик событий для списка в Windows Phone 7.0 , как в 7.1
Я нашел Событие SelectionChanged , однако это событие вызывает проблему.Так есть ли событие, отличное от Tap в 7.0?

private void flightlist_SelectionChanged(object sender, SelectionChangedEventArgs e)  
{    
PhoneApplicationService.Current.State["Flight"] = flightlist.SelectedItem;    
NavigationService.Navigate(new Uri("/FlightDetail", UriKind.Relative));    
}

Ответы [ 2 ]

5 голосов
/ 22 августа 2011

Silverlight Toolkit имеет GestureListener, который позволяет обрабатывать Tap, DoubleTap и многие другие события.

К нему можно прикрепить любой элемент.Но независимо от того, использовать пользовательский обработчик нажатий, для чего предназначено событие SelectionChanged, это глупая идея.Вы должны уточнить, почему это «вызывает проблемы» для вас.

Обновление

Измените свой код так:

private void flightlist_SelectionChanged(object sender, SelectionChangedEventArgs e)
{    
    if (flightlist.SelectedItem != null)
    {
        PhoneApplicationService.Current.State["Flight"] = flightlist.SelectedItem;
        NavigationService.Navigate(new Uri("/FlightDetail", UriKind.Relative));
    }

    // reset the selected-index, so the user can click on it again, after returning.
    flightlist.SelectedIndex = -1;
}
0 голосов
/ 22 августа 2011

Вы можете использовать MouseLeftButtonUp-событие ListBox, а затем получить выбранный элемент, если он есть.Пример кода:

private void YourListBox_LeftMouseButtonUp(object sender, MouseButtonEventArgs e)
{
    var listBox = sender as ListBox;
    var item = listBox.SelectedItem;
    if (item != null)
    {
        //do something with the item
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...