DataTemplate.RecycleElement(ElementFactoryRecycleArgs) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
GetElement を使用して以前に取得した UIElement をリサイクルします。
void RecycleElement(ElementFactoryRecycleArgs const& args);
public void RecycleElement(ElementFactoryRecycleArgs args);
function recycleElement(args)
Public Sub RecycleElement (args As ElementFactoryRecycleArgs)
パラメーター
ElementFactoryRecycleArgs のインスタンス。
実装
注釈
RecycleElement メソッドは、後で再利用するために要素を確保するために使用されますが、要素の現在の状態は自動的にリセットされません。 たとえば、 コントロールの Background がプログラムによって設定されている場合、値はライブ ツリーに再度追加されたときに保持されます。
GetElement から返されたリサイクルされた要素は、新しく作成された要素と同じ方法でライブ ツリーに追加できます。
GetElement は、リサイクルされたインスタンスから既存のインスタンスを取得しようとします。 何も見つからない場合は、 LoadContent を使用して新しいインスタンスが作成されます。
要素をリサイクルしても、すぐにはライブ要素ツリーから削除されない場合があります。 その場合、 Unloaded/Loaded イベントは、ライブ ツリー内の別の親要素に追加されない限り発生しません。
RecycleElement を呼び出すときに Parent を指定する必要はありません。 ただし、パフォーマンスの最適化を有効にするには、その使用をお勧めします。 GetElement が Parent 値で呼び出されると、同じ Parent に対してリサイクルされた要素が検索されます。 親要素にまだアタッチされている場合は、要素を再親する追加のオーバーヘッドを発生させずに再利用できます。
注意
RecycleElement は、リサイクルされた要素をタブ オーダーに参加から自動的に除外しません。 また、要素のオートメーション ピアがオートメーション ツリーに表示されないようにもしません。 プラットフォームの組み込みの仮想化コントロールは、コントロールの下の要素に対してこれを管理します。
カスタム仮想化コントロールをゼロから作成する場合、または 1 回限りのシナリオで RecycleElement を呼び出す場合は、タブ オーダーとオートメーション ピアのツリーからリサイクルされた要素を除外する必要があることに注意してください。
GetChildrenInTabFocusOrder をオーバーライドし、フレームワークが Tab フォーカスに使用する必要がある、実現される要素のサブセットを提供できます。 同様に、コントロールのオートメーション ピアは 、その GetChildrenCore をオーバーライドし、リサイクルされた要素を除外する必要があります。