双重导航时Windows Phone应用程序崩溃

时间:2012-07-02 10:53:38

标签: c# silverlight windows-phone-7

在我的Windows Phone应用程序中,当我按下一个按钮导航到Page1并在它完成加载之前,我按下按钮导航到Page2,我的应用程序崩溃。它是否正确,实现此行为的最佳做法是什么?

更新 一般来说,我认为,对我来说最好的方法是在按下其中一个按钮后阻止屏幕上的所有按钮,并在导航完成后激活它们,那么我该怎么做呢?

2 个答案:

答案 0 :(得分:2)

最佳做法是在第一次单击后禁用Click事件。 如果您的按钮名为b,并且您在xaml或代码隐藏中分配了事件处理程序 喜欢

b.Click += new RoutedEventHandler(ButtonOnClick);

void ButtonOnClick(object sender, RoutedEventArgs e)
{
    b.Click -= new RoutedEventHandler(ButtonOnClick);

    // Navigate away now.
}

实际上我的示例将仅停止双击当前按钮,但您也可以禁用其他按钮。

在我的一个应用程序中,我维护一个List,我迭代并显示/隐藏,启用/禁用所需的。你要做的就是迭代并设置正确的属性。

foreach(var button in myButtons)
    button.IsEnabled = false;

答案 1 :(得分:0)

NavigationService.Navigate(Page2Uri)的来电录制到Dispatcher.BeginInvoke(()=> {...} );,如下所示:

Dispatcher.BeginInvoke (()=> { NavigationService.Navigate(Page2Uri) });