我正在尝试处理Windows Phone 8项目中的hold事件。
这是我的列表点击事件
private void lstData_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
Bus selectedItemData = (sender as ListBox).SelectedItem as Bus;
if (selectedItemData != null)
{
var num = selectedItemData.Number;
var route = selectedItemData.Route;
NavigationService.Navigate(new Uri(string.Format("/Details.xaml?parameter1=" + num + "¶meter2=" + route), UriKind.Relative));
}
这是Hold事件
private void lstData_Hold(object sender, System.Windows.Input.GestureEventArgs e)
{
MessageBoxResult m = MessageBox.Show("Would you like to add this bus to favorite list", "Add to Favorite", MessageBoxButton.OKCancel);
if(m==MessageBoxResult.OK)
{
Bus selectedItemData2 = (sender as ListBox).SelectedItem as Bus;
if (selectedItemData2 != null)
{
MessageBox.Show(selectedItemData2.Route);
}
}
}
问题是,当我调试时,Hold事件中的selectedItemData2为null。我无法理解它如何可能适用于点击事件但不适用于保持事件。请帮帮我!
答案 0 :(得分:1)
一种可能的解释是不会同时触发点击和保持事件。 1)尝试评论Tap事件并再次调试。 2)尝试发送方在hold事件参数
中包含ListBox答案 1 :(得分:1)
当Hold事件被触发时,您所拥有的项目未被选中。但您可以访问在暂停事件中持有e.OriginalSource的项目。