2011-01-25 31 views
2

WPFでVirtualizingStackPanelを正しく使用する方法を教えていただけますか? ItemsControlのItemsPanelTemplateにVirtualizingStackPanelを設定し、それをItemsHostとして設定しましたが、ItemsコントロールのCleanUpVirtualizedItem添付イベントのリスナーを登録すると何も起こりません。イベントが呼び出されることはありません。また、実際の仮想化が行われていないことを示すために、データテンプレート内のカスタムコントロールのUnloadedイベントが呼び出されることはありません。どんな助けでも大歓迎です。WPFでのVirtualizingStackPanelの適切な使用

+0

今後これを読んだ人にとって、キーポイントはItemsPresenterがItemsControlのControlTemplate内のScrollViewerの下にあることです。 –

答えて

5

ではなく、リストボックスまたはリストビューを使用してみてください:

<ListBox ItemsSource="{Binding Items}" 
    VirtualizingStackPanel.VirtualizationMode="Recycling" 
    VirtualizingStackPanel.CleanUpVirtualizedItem="ItemsControl_CleanUpVirtualizedItem"> 
</ListBox> 

のListBoxは自動的にアイテムの仮想化を処理します - あなたが直接VirtualizingStackPanelを作成した場合に行うには、もう少し手作業があります。 ItemsControlのデフォルトのControlTemplateには、仮想化の鍵であるScrollViewerがありません - 詳細情報here

+0

+1ですが、主にリンクです。どうもありがとうございました。 –