Share via


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 方法可用來將元素設定為稍後重複使用,但不會自動重設元素的目前狀態。 例如,如果控制項的背景是以程式設計方式設定值,則會再次新增至即時樹狀結構時保存值。

GetElement 傳回的回收元素可以與新建立的元素相同方式新增至即時樹狀結構。

GetElement 會嘗試從回收的現有實例中擷取現有的實例。 如果找不到任何實例,則會使用 LoadContent建立新的實例。

回收專案可能不會立即從即時專案樹狀結構中移除。 在此情況下,除非已將卸載的/Loaded事件新增至即時樹狀結構中的不同父元素,否則不會引發。

呼叫 RecycleElement 時,不需要指定 Parent 。 不過,建議使用 它來啟用效能優化。 使用Parent值呼叫GetElement時,它會尋找針對該相同父代回收的專案。 如果它們仍然附加至父元素,則可以重複使用它們,而不會造成重新父代元素的額外負荷。

注意

RecycleElement 不會自動排除已回收的專案,而無法參與定位順序。 它也不會隱藏專案的自動化對等,使其不會出現在自動化樹狀結構中。 平臺的內建虛擬化控制項會為其控制項下的元素管理此專案。

如果您要從頭開始建立自訂虛擬化控制項,或在一次性案例中呼叫 RecycleElement,請注意,您必須負責從製表順序和自動化對等樹狀結構中排除回收的專案。

您可以覆寫 GetChildrenInTabFocusOrder ,並提供架構應該用於 Tab 焦點的實現元素子集。 同樣地,控制項的自動化對等應該覆寫其 GetChildrenCore ,並排除回收的專案。

適用於

另請參閱