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是与 Tap 不同的事件。您应该寻找一个被调用的事件Tapped并为其创建一个 OnTapped 处理程序。

我的猜测是你的问题。该事件没有冒泡,因为在 LayoutAwarePage.cs 中该事件被设置为已处理。

您可以修改此页面以满足您的需要。寻找CoreWindow_PointerPressed方法并寻找它设置的区域args.Handled = true

于 2013-01-22T20:54:26.473 回答
1

改用Tapped事件,因为它处理单击、点击和触控笔事件,而Click专门处理鼠标(有关更多详细信息,请参阅此答案)。

以下是有关他们如何尝试统一围绕触摸的不同指向输入模式的事件的一些信息。

于 2013-01-22T21:09:53.167 回答