导出 (0) 打印
全部展开
此文章由机器翻译。 将光标移到文章的句子上,以查看原文。 更多信息。
译文
原文

ItemContainerGenerator 类

委托其宿主生成 用户界面 (UI) ,例如ItemsControl

System.Object
  System.Windows.Controls.ItemContainerGenerator

命名空间:  System.Windows.Controls
程序集:  PresentationFramework(在 PresentationFramework.dll 中)

public sealed class ItemContainerGenerator : IRecyclingItemContainerGenerator, 
	IItemContainerGenerator, IWeakEventListener

ItemContainerGenerator 类型公开以下成员。

  名称说明
公共属性Items获取属于该 ItemContainerGenerator项目的集合。
公共属性Status ItemContainerGenerator 的生成状态。
页首

  名称说明
公共方法ContainerFromIndex返回元素与项目对应于在 ItemCollection中的特定索引。
公共方法ContainerFromItem返回 UIElement 与给定的项目相对应。
公共方法Equals(Object)确定指定的对象是否等于当前对象。 (继承自 Object。)
公共方法GenerateBatches返回管理 Status 属性的对象。
公共方法GetHashCode作为默认哈希函数。 (继承自 Object。)
公共方法GetType获取当前实例的 Type (继承自 Object。)
公共方法IndexFromContainer(DependencyObject)返回索引到对应于指定的项目中,生成的 UIElement
公共方法IndexFromContainer(DependencyObject, Boolean)返回索引到对应于指定的项目中,生成的 UIElement,也可以是递归搜索分层项目。
公共方法ItemFromContainer返回对应于指定的项目中,生成的 UIElement
公共方法ToString返回表示当前对象的字符串。 (继承自 Object。)
页首

  名称说明
公共事件ItemsChanged ItemsChanged 事件。 ItemContainerGenerator 引发通知格式项目集合已更改。
公共事件StatusChanged StatusChanged 事件。 ItemContainerGenerator 引发通知控制其状态发生了变化。
页首

  名称说明
显式接口实现私有方法IItemContainerGenerator.GenerateNext()返回用于的容器元素显示下一项。
显式接口实现私有方法IItemContainerGenerator.GenerateNext(Boolean)返回用于的容器元素显示下一项,并且,容器元素是否新生成的 (意识到)。
显式接口实现私有方法IItemContainerGenerator.GeneratorPositionFromIndex返回 GeneratorPosition 对象映射为指定索引处的项。
显式接口实现私有方法IItemContainerGenerator.GetItemContainerGeneratorForPanel返回 ItemContainerGenerator 适当供所指定的面板中使用。
显式接口实现私有方法IItemContainerGenerator.IndexFromGeneratorPosition返回索引映射到该指定的 GeneratorPosition。
显式接口实现私有方法IItemContainerGenerator.PrepareItemContainer所指定的元素作为容器使用相应的项做好准备。
显式接口实现私有方法IItemContainerGenerator.Remove此成员支持 Windows Presentation Foundation (WPF) 基础结构并且不应在代码中直接使用。
显式接口实现私有方法IItemContainerGenerator.RemoveAll移除所有生成的 (意识到的) 项目。
显式接口实现私有方法IItemContainerGenerator.StartAt(GeneratorPosition, GeneratorDirection)准备生成器生成项目,开始在指定的 GeneratorPosition 并在指定的 GeneratorDirection。
显式接口实现私有方法IItemContainerGenerator.StartAt(GeneratorPosition, GeneratorDirection, Boolean)是否已准备好生成器生成项目,开始在指定的 GeneratorPosition 并在指定的 GeneratorDirection 和控件开始使用生成的 (意识到的) 项目。
显式接口实现私有方法IRecyclingItemContainerGenerator.Recycle此成员支持 Windows Presentation Foundation (WPF) 基础结构并且不应在代码中直接使用。
显式接口实现私有方法IWeakEventListener.ReceiveWeakEvent此成员支持 Windows Presentation Foundation (WPF) 基础结构并且不应在代码中直接使用。
页首

ItemContainerGenerator 实现 IItemContainerGenerator,是接口定义一个类型:

每个 ItemsControl 类型都有对应的容器类型。 容器元素是在项目集合包含数据项的对象。 例如,对于 ListBox,生成的容器是 ListBoxItem 控件;对于 ComboBox,它们是 ComboBoxItem 控件。

ItemsControl 通过 IItemContainerGenerator 接口来生成其项目。 ItemsControl ItemContainerGenerator 属性为类型 ItemContainerGenerator,实现 IItemContainerGenerator 接口。 因此,可以使用 ItemContainerGenerator 属性, ItemContainerGenerator 对象与您的 ItemsControl 的访问。 例如,因此,如果您在数据 TreeView和您的需要根据获取索引的 TreeViewItem 或其关联的数据项,可以使用 ItemContainerGenerator.ContainerFromIndexItemContainerGenerator.ContainerFromItem 方法。 或者,可以使用 ItemContainerGenerator.IndexFromContainerItemContainerGenerator.ItemFromContainer 方法获取索引或数据项与特定生成的容器元素。

除了在用法之外, IItemContainerGenerator 接口用于高级的方案。 通常,使其有效的面板自己的实现调用接口的成员高级应用程序。

如果需要获取 ListBox 中特定索引位置的特定 ListBoxItem,可以使用 ItemContainerGenerator

下面的示例演示 ListBox 和它的项。


<ListBox Margin="10,0,0,5" Name="lb" VerticalAlignment="Top" Grid.Column="0" Grid.Row="2">
    <ListBoxItem>Item 0</ListBoxItem>
    <ListBoxItem>Item 1</ListBoxItem>
    <ListBoxItem>Item 2</ListBoxItem>
    <ListBoxItem>Item 3</ListBoxItem>
</ListBox>


下面的示例演示如何通过在 ItemContainerGeneratorContainerFromIndex 属性中指定项索引来检索项。


private void GetIndex0(object sender, RoutedEventArgs e)
{
  ListBoxItem lbi = (ListBoxItem)
      (lb.ItemContainerGenerator.ContainerFromIndex(0));
  Item.Content = "The contents of the item at index 0 are: " +
      (lbi.Content.ToString()) + ".";
}


在检索过列表框项后,可以显示该项的内容,如下面的示例所示。


Item.Content = "The contents of the item at index 0 are: " +
    (lbi.Content.ToString()) + ".";


.NET Framework

受以下版本支持:4.5、4、3.5、3.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)

并不是.NET Framework 对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求.

此类型的任何公共static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

社区附加资源

添加
显示:
© 2015 Microsoft