リストボックスアイテムが表示されるタイミングを知らせるイベントはありますか?ListBoxItemがいつ表示されるかを知るには?
問題は、私がListBox.ItemSource
として設定した数千の要素を持つことができるということです。各要素はビットマップを生成します(しばらく時間がかかります)。このビットマップ生成をコンストラクタに配置するだけで、コレクションを作成するには永遠に時間がかかります。代わりに、アイテムが表示されたときにビットマップ生成を延期したいと考えています。
これを行う方法はありますか?理想的には、すべてのアイテムをループして表示されていないかどうかを確認することをお勧めします。
あなたのリストボックスには、ImageコントロールをItemTemplateにする必要があります。 ImageコントロールのSourceプロパティは、ビューモデルアイテムクラスのプロパティにバインドする必要があります。仮想化により、バインディングは初期化されず、アイテムが実際に表示される前にソースプロパティにアクセスし、ListBoxItemコンテナが作成されます。要点は、プロパティゲッターが呼び出される前にビューモデルアイテムがビットマップを作成しないことです。 – Clemens