如何处理“System.Runtime.InteropServices.COMException(0x80004005):未指定的错误”......?

时间:2015-04-09 06:17:26

标签: exception windows-runtime windows-phone-8.1 comexception

我正在“System.Runtime.InteropServices.COMException(0x80004005):未指定错误”,同时在两个用户控件之间严格切换。我正在使用Visual Studio 2013中的C#和XAML开发Windows Phone 8.1应用程序。 如果我的理解是正确的(来自互联网和论坛),当我们进行严格的导航时会发生在许多应用程序中,并且我无法获得相同的特定解决方案。 有没有办法捕获此异常并阻止应用程序崩溃。

1 个答案:

答案 0 :(得分:1)

  • 您是usercontrols / itemtemplate中的ListView GridView吗?
  • 您是否使用ItemClick / ListView中的GridView事件?
  • 您是否导航到ItemClick活动中的其他页面?

然后这可能对你有帮助......

而不是ItemClick尝试使用来自usercontrol的根网格的Tapped事件。不知何故,ItemClick事件在Windows Phone 8.1上被破坏,但在Windows 8.1上完美运行。

代码示例:

不要这样做:

XAML

<GridView ItemClick="GridView_ItemClick">
    <GridView.ItemTemplate>
        <DataTemplate>
            <usercontrols:MyUserControl/>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

代码背后:

private void GridView_ItemClick(object sender, ItemClickEventArgs e)
{
    // Your navigation code...
}

而是试试这个:

XAML

<GridView>
    <GridView.ItemTemplate>
        <DataTemplate>
            <usercontrols:MyUserControl OnTapped="ItemTapped"/>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

幕后代码

private void ItemTapped(object sender, RoutedEventArgs e)
{
    // You navigation code
}

后面的用户控制代码

public sealed partial class MyUserControl : UserControl
{
    public event EventHandler OnTapped;

    public MyUserControl()
    {
        this.InitializeComponent();
    }

    private void RootGrid_Tapped(object sender, TappedRoutedEventArgs e)
    {
        if (OnTapped != null)
        {
            OnTapped(this, null);
        }
    }
}