gpt4 book ai didi

c# - 设置派生 ListBox 的 ItemsSource 抛出 "Catastrophic failure"

转载 作者:太空狗 更新时间:2023-10-29 21:55:08 25 4
gpt4 key购买 nike

我正在为 Windows 8 WinRT 框架开发。以下示例代码抛出异常:

灾难性故障(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;
}
}

最佳答案

我在继承 ListView 时遇到了类似的问题。就我而言,以下方法部分有所帮助:我不再尝试直接在后面的代码中设置我的 ListView 的 ItemsSource,而是我在 XAML 中创建了 CollectionViewSource,例如:

<UserControl.Resources>
<CollectionViewSource x:Name="myCollectionViewSource"/>
</UserControl.Resources>
...
...
<ListView
...
ItemsSource="{Binding Source={StaticResource myCollectionViewSource}}" />

在后面的代码中我设置了

this.myCollectionViewSource.Source = new List<Object> { new Object() }; // The real data source respectively

然而这似乎只是推迟了问题的发生。至少在我的情况下。在我的真实示例中,我使用 ObservableVector 作为数据源。一旦执行 ObservableVector 集合的任何更改(例如 Clear),我也会遇到灾难性故障(0x8000FFFF)。一旦我使用原始的 ListView(不是我的子类版本),一切都会再次正常工作 - 与您的情况完全一样。所以我的回复不能理解为问题的解决方案,但也许这是一个值得尝试的提示。在我的例子中,原始分配工作正常,问题首先出现在可观察集合尝试更新之后。我尝试了 ObservableCollection(应该在 CP 中工作,但在 DP 中没有)但是我遇到了其他问题。很高兴听到您是否能够在这条道路上取得任何进展...

关于c# - 设置派生 ListBox 的 ItemsSource 抛出 "Catastrophic failure",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com