6

Windows 8 WinRT フレームワーク用に開発しています。次のサンプル コードは、例外をスローします。

Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))

これは、現在の WinRT フレームワーク (私は VS11 と Consumer Preview を使用しています) のもう 1 つのバグですか? 誰かがこの問題を解決する方法を知っていますか?

ところで: 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; 
    }
}
4

1 に答える 1

2

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 コレクションの変更 (クリアなど) が実行されるとすぐに、壊滅的な障害 (0x8000FFFF) も発生します。元の ListView (サブクラス化されたバージョンではない) を使用するとすぐに、すべて正常に動作します - あなたの場合とまったく同じです。ですから、私の回答は問題の解決策としては理解できませんが、試してみる価値のあるヒントかもしれません。私の場合、元の割り当ては正常に機能します。監視可能なコレクションが更新を試みた後、問題が最初に発生します。ObservableCollection を試してみました (CP では動作するはずですが、DP では動作しませんでした) が、他の問題に直面しました。あなたがこの道を進むことができたかどうかを聞くのは興味深いことです...

于 2012-05-06T21:16:26.390 に答える