この記事で紹介した通常のコントロールと同様の階層コントロールの仮想化コレクションを実装しようとしています。
この記事で紹介されている解決策は、(記事からの)次の動作に大きく依存しています。
が実装ではなく実装に
ItemsControl
バインドされている場合、リスト全体を列挙するのではなく、表示に必要なアイテムにのみアクセスします。プロパティを使用し てコレクションのサイズを決定し、おそらくスクロール範囲を設定します。次に、リストインデクサーを使用して画面上のアイテムを繰り返し処理します。したがって、 多数のアイテムがあることをレポートできるが、実際には必要な場合にのみアイテムを取得できるを作成することができます。IList
IEnumerable
Count
IList
ListBox
この動作をしている間TreeView
(これもItemsControl
)はこのように動作せず、画面に表示されているかどうかに関係なく、すべてのアイテムが常に要求されていることがわかりました。
それで、これはすべてに固有の動作でListBox
あり、すべてに固有の動作ではありませんか、それともItemsControl
WPFのバグTreeView
ですか?
また、MSDNでこの動作についての言及を見つけることができなかったので、誰かがそれについて文書化されているのを見つけたら、私はそれについて知りたいと思います。