3

ControlTemplate で VirtualizingStackPanel を使用して ItemsControl を操作しています。仮想化はある程度機能しています。項目の DataTemplate のコントロールの Loaded および Unloaded イベント ハンドラーにデバッグ ステートメントを配置しましたが、コントロールが表示されなくなった直後にアンロードされません。この動作を強制する方法はありますか?

4

1 に答える 1

2

VirtualizationModeをRecycledに設定すると運が良かったかもしれません。VirtualizingStackPanel.csのソースコードには、リサイクルモードが(バックグラウンドで実行するのではなく)レンダラーをすぐにクリーンアップすることを示すコメントがあります。

    // 
    // Delayed Cleanup is used when the VirtualizationMode is standard (not recycling) and the panel is scrolling and item-based
    // It chooses to defer virtualizing items until there are enough available.  It then cleans them using a background priority dispatcher 
    // work item
    //

VirtualizingStackPanelの完全なソースは、次の場所にあります。

http://referencesource.microsoft.com/netframework.aspx

于 2011-01-26T02:30:01.037 に答える