【问题标题】:HardwareButton BackPressed Doesnt Work properly in windows phone 8.1硬件按钮 BackPressed 在 windows phone 8.1 中无法正常工作
【发布时间】:2014-05-29 20:54:50
【问题描述】:

我已经为硬件后退按钮编写了这段代码,但它不能正常工作。 1.第一次我按回(例如从第 3 页)它工作正常(它重定向到第 2 页)bt 再次我转到我的下一页(第 3 页)并再次按回但它不起作用..它直接转到主页或主页(page1)..任何有解决方案的人都可以从page3转到page2,不管你从那个页面重定向多少次..please..thanks

HardwareButtons.BackPressed += HardwareButtons_BackPressed;

void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
        {
            Frame rootFrame = Window.Current.Content as Frame;
            if (rootFrame == null)
            return;
            if(rootFrame.CanGoBack)
            {
                rootFrame.GoBack();
                e.Handled = true;
            }

        }

【问题讨论】:

    标签: c# windows-phone-8


    【解决方案1】:

    您正在阻止按此键的后退键:

    e.Handled = true;
    

    请查看this。它会清除您的想法。

    【讨论】:

    • void HardwareButtons_BackPressed(Object sender, BackPressedEventArgs e) { e.Handled = true; Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed; this.Frame.Navigate(typeof(EditProfileAccount)); }
    • 此代码有效,但现在如何保存数据状态或如何恢复上一页的数据...在我的情况下,我从第 3 页导航到第 2 页,第 2 页上的数据丢失但我不希望这样,我需要页面只是被导航并且数据不应该丢失......怎么办?如果有人知道请告诉我......谢谢
    • 你必须将你的数据保存在你项目中UI的上层,这样你就可以在任何地方使用它们了。
    • 我没有得到你,你能解释一下吗?
    • 你的数据应该独立于 UI。假设你正在绑定 ListBox 和 ObservableCollection,然后保持 ObservableCollection 静态并在 UI 层之上的 Model 类中。这样你就可以在任何地方访问它。所以虽然你输了您可以访问您的数据的 UI 页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多