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

标签 c# silverlight windows-phone-7

在我的 Windows Phone 应用程序中,当我按下导航到 Page1 的按钮并在完成加载之前按下按钮导航到 Page2 时,我的应用程序崩溃了。这是正确的吗?实现这种行为的最佳实践是什么?

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

最佳答案

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

b.Click += new RoutedEventHandler(ButtonOnClick);

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

    // Navigate away now.
}

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

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

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

关于c# - 双重导航时 Windows Phone 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11292219/

相关文章:

c# - Silverlight 和 RIA 服务与 LINQ-to-SQL DataContext - 无法使用客户端 linq 查询

silverlight - Silverlight 中的同步 ADO.NET 数据服务调用

c# - 以编程方式打印 PDF 中的 BING map 位置

windows-phone-7 - Windows Phone 8 GeoCoordinateWatcher 与 Geolocator

windows-phone-7 - 如何在 xna 中为 wp7 生成平滑的运动?

c# - 如何跨进程边界编码进程外 COM 引用?

c# - AutoFilterRow 上的 XtraGridView 自定义过滤器

c# - 如何从 removeall 获取 "success"的指示

c# - 适用于 Windows 7 Phone 的 Wintellect PowerCollections?

c# - 身份角色未添加到用户