Ric*_*ter 6 c# xaml microsoft-metro windows-8 windows-runtime
我正在为Windows 8 WinRT框架开发.以下示例代码引发异常:
Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
这是当前WinRT框架中的另一个错误(我正在使用VS11和Consumer Preview)吗?有人知道如何解决这个问题?
顺便说一句:我已经使用Windows Phone 7.5 Silverlight测试了相同的代码,它没有问题...
谢谢你的帮助.
public class MyListBox : ListBox
{
}
public sealed partial class BlankPage : Page
{
public BlankPage()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var box1 = new ListBox();
box1.ItemsSource = new List<Object> { new Object() }; // works without problems
Content = box1;
var box2 = new MyListBox();
box2.ItemsSource = new List<Object> { new Object() }; // throws exception
Content = box2;
}
}
Run Code Online (Sandbox Code Playgroud)
我在子类化 ListView 时遇到了类似的问题。就我而言,以下方法部分有所帮助:我不再尝试直接在后面的代码中设置 ListView 的 ItemsSource,而是在 XAML 中创建 CollectionViewSource,如下所示:
<UserControl.Resources>
<CollectionViewSource x:Name="myCollectionViewSource"/>
</UserControl.Resources>
...
...
<ListView
...
ItemsSource="{Binding Source={StaticResource myCollectionViewSource}}" />
Run Code Online (Sandbox Code Playgroud)
在我设置的后面的代码中
this.myCollectionViewSource.Source = new List<Object> { new Object() }; // The real data source respectively
Run Code Online (Sandbox Code Playgroud)
然而,这似乎只是推迟了问题的解决。至少就我而言。在我的真实示例中,我使用 ObservableVector 作为数据源。一旦对 ObservableVector 集合进行任何更改(例如清除),我也会遇到灾难性故障(0x8000FFFF)。一旦我使用原始的 ListView (不是我的子类版本),一切都会再次正常工作 - 与您的情况完全相同。所以我的回复不能被理解为问题的解决方案,但也许这是一个值得尝试的提示。就我而言,原始分配工作正常,在可观察集合尝试更新后首先出现问题。我尝试了 ObservableCollection(应该在 CP 中工作,但在 DP 中不起作用),但在那里我遇到了其他问题。听听您是否能够在这条路上取得任何进展将会很有趣......