1

CollectionBase クラスを使用してこれが可能かどうかはわかりません。誰かが CollectionBase クラスの項目にいつアクセスしているか知りたいです。

最終的な目標は、"VirtualMode" (DataGridView コントロールに似ています) を作成することです。これにより、ユーザーがデータを取得する前に、データをチェックして検証することができます。

つまり、たとえば 20 個のオブジェクトのコレクションを作成でき、内部で IList を変更して 20 個の null オブジェクトを含めることができます。次に、アイテムを読み取ろうとすると、null の場合は、外部データ ソースに移動して読み取ります。その時に入れます。次に、既存の null オブジェクトを読み取りクラスに置き換えます。次にアクセスしようとすると、キャッシュされたバージョンが取得されます。

それを入力した後。OnValidate がそれを行うのに適切な場所であるかどうか疑問に思います。

どんな援助でも大歓迎です。

トレバー・ワトソン

4

2 に答える 2

1

では不可能CollectionBaseです。、、および のOnValidate()前にのみ呼び出されます。OnInsert()OnRemove()OnSet()

ArrayListインデクサー プロパティ ( )から継承してオーバーライドできますArrayList.Item

于 2011-06-22T22:58:48.393 に答える
0

仮想化コレクションを探しているようです。CodeProject に関するこの記事には優れた実装があります (これは WPF でのデータ バインディングを目的としていますが、おそらく別のコンテキストで使用できます)。

于 2011-06-22T22:59:46.990 に答える