点击事件处理程序

问题描述 投票:1回答:2

似乎在Windows Phone 7.0中列表框没有Tap事件处理程序 ,如7.1中所示
我找到了SelectionChanged事件但是这个事件会导致问题。 那么7.0中的Tap会有不同的事件吗?

private void flightlist_SelectionChanged(object sender, SelectionChangedEventArgs e)  
{    
PhoneApplicationService.Current.State["Flight"] = flightlist.SelectedItem;    
NavigationService.Navigate(new Uri("/FlightDetail", UriKind.Relative));    
}
windows-phone-7
2个回答
5
投票

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

-1
投票

您可以使用ListBox的MouseLeftButtonUp事件,然后获取所选项目(如果有)。 示例代码:

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
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.