0

次のように設定されたコレクションのコレクションがあります。

ObservableCollection<ObservableCollection<Image>> _Documents_CompleteClaims= new ObservableCollection<ObservableCollection<Image>>();

そして、次のようにコレクションをリストに追加しています。

this._Documents_CompleteClaims.Add(this._Documents_NewClaimList);

コレクションをループしようとすると、null が表示されます。コレクションには次のオブジェクトがあります。

しかし、コレクション数は 0 を示しています。

しばらく前に同じ方法を使用しましたが、ObservableCollection の代わりに List を使用しました。以前はうまくいきました。監視可能なコレクションが機能しない理由はありますか? それとも、ばかげたことを見落としているだけですか?

だから私は問題を誤診しました。問題は、コレクション内のコレクションにアイテムがないことです。

これは、コレクションのリストにコレクションを追加する方法です。

this._Documents_CompleteClaims.Add(this._Documents_NewClaimList); //Add claim to completed list
this._Documents_NewClaimList.Clear(); //Clear out the claim list so we can start a new claim

_Documents_NewClaimListコレクションに項目があることを確認しました。そのコレクションをコレクションのコレクションに追加してから、_Documents_NewClaimListコレクションをクリアできると考えました。しかし、.Clear() 行をコメントアウトすると、問題なく動作します。そのため、別の方法でアイテムを削除する必要があると思います。たぶん、アイテムを一時コレクションに追加し、その一時コレクションをコレクションのコレクションに追加してから、古いコレクションをクリアできます。

4

1 に答える 1

1

投稿されたものに特に問題はありません。null に遭遇しませんでした。それは間違った診断でした。コレクションのコレクションがあり、1 つのアイテムが含まれています。これは空のコレクションです。それがバグであることは間違いありませんが、投稿したコードのバグではありません。

その空のコレクションに Image オブジェクトを追加することになっているコードに集中するのが最善です。

于 2013-06-21T17:49:05.033 に答える