似乎在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));
}
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;
}
您可以使用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
}
}