DataTemplate.RecycleElement(ElementFactoryRecycleArgs) 方法

定义

回收以前使用 GetElement 检索的 UIElement

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

参数

实现

注解

RecycleElement 方法用于保留元素供以后重复使用,但不会自动重置元素的当前状态。 例如,如果以编程方式设置 控件Background ,则再次添加到活动树时,该值将保留。

可以从 GetElement 返回的回收元素以与新创建的元素相同的方式添加到活动树中。

GetElement 尝试从回收的实例中检索现有实例。 如果未找到任何内容,则它将使用 LoadContent 创建新实例。

回收元素可能不会立即导致它从活动元素树中删除。 在这种情况下,不会引发 Unloaded/Loaded 事件,除非将其添加到实时树中的其他父元素。

调用 RecycleElement 时,不需要指定 Parent 。 但是,建议使用它来启用性能优化。 使用 Parent 值调用 GetElement 时,它将查找为同一 Parent 回收的元素。 如果它们仍附加到父元素,则可以重新使用它们,而不会产生对元素重新设置父级的额外开销。

注意

RecycleElement 不会自动排除已回收元素参与 Tab 键顺序。 它也不会隐藏元素的自动化对等项,使其不显示在自动化树中。 平台的内置虚拟化控件管理其控制下的元素的此控件。

如果要从头开始创建自定义虚拟化控件或在一次性方案中调用 RecycleElement,请注意,你有责任从 Tab 键顺序和自动化对等树中排除已回收的元素。

可以替代 GetChildrenInTabFocusOrder ,并提供框架应用于 Tab 焦点的已实现元素的子集。 同样,控件的自动化对等应重写其 GetChildrenCore 并排除回收的元素。

适用于

另请参阅