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));
}
答案 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
}
}