2

私はこのxamlを持っています:

<Button VerticalAlignment="Bottom"
        Click="SaveAndGoBack"
        IsEnabled="{Binding Frame.CanGoBack,
                            ElementName=pageRoot}"
        Style="{StaticResource BackButtonStyle}" />

...しかし、戻るボタンを「タップ」(クリック)すると、前のページに戻りますが、SaveAndGoBack()呼び出されません。最初の行にブレークポイントがあり、到達しません。

ボタンを選択して「戻る」ことができるので、ボタンは明らかに有効になっています。では、なぜイベントハンドラーに到達しないのでしょうか。

アップデート

クリックからタップに変更しても違いはありません。これがXAMLになりました。

<Button VerticalAlignment="Bottom"
        Tapped="SaveAndGoBack"
        IsEnabled="{Binding Frame.CanGoBack,
                            ElementName=pageRoot}"
        Style="{StaticResource BackButtonStyle}" />

...これはメソッドであり、最初の行にブレークポイントがあり、到達することはありません(ただし、メインページはに戻ります)。

private async void SaveAndGoBack(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs args)
{
    SOs_Locations sos_locs = new SOs_Locations { GroupName = txtbxGroup.Text };
    int locNum;
    int.TryParse(txtbxLocationNum.Text, out locNum);
    sos_locs.LocationTitle = txtbxTitle.Text;
    sos_locs.CivicAddress = txtbxAddress.Text;
    double lat;
    double.TryParse(txtbxLatitude.Text, out lat);
    sos_locs.Latitude = lat;
    double lng;
    double.TryParse(txtbxLongitude.Text, out lng);
    sos_locs.Longitude = lng;
    if (cmbxDisplayColor.SelectedValue != null)
        sos_locs.LocationColor = cmbxDisplayColor.SelectedValue.ToString();
    await SQLiteUtils.UpdateLocationAsync(sos_locs);
    Frame.Navigate(typeof(MainPage));
}
4

2 に答える 2

4

Clickタップとは別のイベントです。呼び出されたイベントを探し、そのTappedための OnTapped ハンドラーを作成する必要があります。

私の推測では、それはあなたの問題です。LayoutAwarePage.cs でイベントが処理済みに設定されているため、イベントはバブリングしません。

このページは、ニーズに合わせて変更できます。CoreWindow_PointerPressedメソッドを探して、それが設定されている領域を探しますargs.Handled = true

于 2013-01-22T20:54:26.473 に答える
1

クリック、タップ、スタイラスのイベントを処理するのに対し、特にマウスを処理するため、代わりにTappedイベントを使用します (詳細については、この回答を参照してください)。Click

タッチに関するさまざまなポインティング入力モダリティのイベントをどのように統合しようとしたかについての情報を次に示します。

于 2013-01-22T21:09:53.167 に答える