DataTemplate.RecycleElement(ElementFactoryRecycleArgs) メソッド

定義

GetElement を使用して以前に取得した UIElement をリサイクルします

void RecycleElement(ElementFactoryRecycleArgs const& args);
public void RecycleElement(ElementFactoryRecycleArgs args);
function recycleElement(args)
Public Sub RecycleElement (args As ElementFactoryRecycleArgs)

パラメーター

実装

Windows の要件

デバイス ファミリ
Windows 10, version 1809 (10.0.17763.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v7.0 で導入)

注釈

RecycleElement メソッドは、後で再利用するために要素を確保するために使用されますが、要素の現在の状態は自動的にはリセットされません。 たとえば、 コントロールBackground がプログラムによって設定されている場合、値はライブ ツリーに再度追加されたときに保持されます。

GetElement から返されるリサイクルされた要素は、新しく作成された要素と同じ方法でライブ ツリーに追加できます。

GetElement は 、リサイクルされたインスタンスから既存のインスタンスを取得しようとします。 何も見つからない場合は、 LoadContent を使用して新しいインスタンスが作成されます。

要素をリサイクルしても、すぐにはライブ要素ツリーから削除されない場合があります。 その場合、アンロード された/読み込み イベントは、ライブ ツリー内の別の親要素に追加されない限り発生しません。

RecycleElement を呼び出すときに Parent を指定する必要はありません。 ただし、パフォーマンスの最適化を有効にするには、その使用をお勧めします。 GetElementParent 値で呼び出されると、その同じ Parent に対してリサイクルされた要素が検索されます。 親要素にまだアタッチされている場合は、要素を再親する追加のオーバーヘッドを発生させずに再利用できます。

注意

RecycleElement は、リサイクルされた要素をタブ オーダーへの参加から自動的に除外しません。 また、要素のオートメーション ピアがオートメーション ツリーに表示されないようにも非表示にしません。 プラットフォームの組み込みの仮想化コントロールは、コントロールの下にある要素に対してこれを管理します。

カスタム仮想化コントロールをゼロから作成する場合、または 1 回限りのシナリオで RecycleElement を呼び出す場合は、タブ オーダーとオートメーション ピアのツリーからリサイクルされた要素を除外する必要があることに注意してください。

GetChildrenInTabFocusOrder をオーバーライドし、フレームワークが Tab フォーカスに使用する必要がある実現された要素のサブセットを指定できます。 同様に、コントロールのオートメーション ピアは 、その GetChildrenCore をオーバーライドし、リサイクルされた要素を除外する必要があります。

適用対象

こちらもご覧ください