0

我正在尝试处理我的 Windows Phone 8 项目中的保持事件。

这是我列表的点击事件

    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 + "&parameter2=" + 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 为空。我无法理解它如何可能适用于点击事件而不适用于保持事件。请帮我!

4

2 回答 2

1

一种可能的解释是点击和按住事件不会同时触发。1)尝试注释掉Tap事件并再次调试它。2)尝试发送方是否在hold事件的参数中包含ListBox

于 2013-08-31T13:56:47.483 回答
1

当 Hold 事件被触发时,您持有的项目未被选中。但是您可以访问在您的 hold 事件中持有 e.OriginalSource 的项目。

于 2013-08-31T14:07:35.797 回答