点击事件处理程序

时间:2011-08-22 12:18:57

标签: windows-phone-7

Windows Phone 7.0 中的列表框似乎没有点按事件处理程序,因为 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));    
}

2 个答案:

答案 0 :(得分: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 :(得分:-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
    }
}