E_UNEXPECTED UWP 灾难性故障

Posted

技术标签:

【中文标题】E_UNEXPECTED UWP 灾难性故障【英文标题】:E_UNEXPECTED UWP Catastrophic Failure 【发布时间】:2016-03-21 11:02:22 【问题描述】:

我得到以下信息:

灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))

当 ListView 属性在 Visual State 中设置为 Null 时。没道理,为什么VS和Blend会抱怨?

<VisualState.Setters>
     <Setter Target="listView.(Selector.IsSynchronizedWithCurrentItem)" Value="x:Null"/>
</VisualState.Setters>

编辑 类似的问题:

 <VisualState.Setters>
   <Setter Target="NumberButtonBox.(RelativePanel.RightOf)" Value="x:Null" />
   <Setter Target="NumberButtonBox.(RelativePanel.Below)" Value="GridPlaceholder" />
</VisualState.Setters>

其中 NumberButtonBox 被定义为

<Viewbox x:Name="NumberButtonBox" RelativePanel.RightOf="GridPlaceholder" MaxWidth="250" MaxHeight="450" MinWidth="200">

错误显示 在 setter 上使用 x:Null 的值,而不是在另一行。更改 Setter 行的顺序没有效果。

以这种方式将属性设置为 Null 是否是清除该值的正确方法?在运行时它确实有效,只是编辑器对此有问题。

【问题讨论】:

“灾难性故障”只是对 UWP 中错误报告质量的描述,它对诊断任何事情都毫无用处。 ***.com/help/mcve 但至少它发生在特定情况下:&lt;Setter&gt; 的值为x:Null 代码中的列表视图是什么?请发布更多代码.. 【参考方案1】:

在设计时设置 null 而不会崩溃的唯一替代方法是这样(如 this similar question 中所述)

示例:

<Style x:Key="MyList" TargetType="ListView">
    <Setter Property="Transitions" >
        <Setter.Value>
            <TransitionCollection></TransitionCollection>
        </Setter.Value>
    </Setter>
</Style>

代替:

Style x:Key="MyList"
        TargetType="ListView">
    <Setter Property="Transitions" 
            Value="x:Null"/>
</Style>

【讨论】:

空集合可以用于集合类型的属性,但不能用于其他属性。请注意,只有设计器会报告崩溃,运行时它会按预期工作。 Mmh 对于非集合类型,我认为唯一的方法是使用转换器而不是 x:Null 绑定。检查这个:***.com/questions/356194/…

以上是关于E_UNEXPECTED UWP 灾难性故障的主要内容,如果未能解决你的问题,请参考以下文章

WiX 3.8 导致 VS 2013 RC 灾难性故障

UWP ListView/GridView DragItems 结果导致灾难性失败

使用自动化Windows防火墙

windows10 解压缩搜索支持文件时出错:灾难性故障

卸载软件提示解压缩支持文件出错,灾难性故障,360卸载和控制面板卸载都试过了,都是这样提示的,怎么办

Windows 2008 server R2安装.NET Framework4时提示“灾难性故障”解决