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

そしてこれがホールドイベント

    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 になることです。タップイベントでは機能するが、ホールドイベントでは機能しない可能性があることを理解できません。私を助けてください!

4

2 に答える 2

1

考えられる理由の 1 つは、タップ アンド ホールド イベントが同時にトリガーされないことです。1) Tap イベントをコメントアウトして、もう一度デバッグしてみてください。2) 送信者が保留イベントのパラメータに ListBox を含んでいるかどうかを試してください

于 2013-08-31T13:56:47.483 に答える
1

Hold イベントが発生したとき、保持していたアイテムは選択されていませんでしたが、保持イベントで e.OriginalSource を保持していたアイテムにアクセスできます。

于 2013-08-31T14:07:35.797 に答える