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

ItemContainerGenerator 类

提供 ItemsControl 的项与其容器元素之间的映射。

System.Object
  System.Windows.Controls.ItemContainerGenerator

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

public sealed class ItemContainerGenerator : IRecyclingItemContainerGenerator, 
	IItemContainerGenerator

ItemContainerGenerator 类型公开以下成员。

  名称说明
公共方法受 Silverlight for Windows Phone 支持ContainerFromIndex返回 ItemCollection 中指定索引处的项的容器。
公共方法受 Silverlight for Windows Phone 支持ContainerFromItem返回与指定的项对应的容器。
公共方法受 Silverlight for Windows Phone 支持Equals(Object)确定指定的 Object 是否等于当前的 Object (继承自 Object。)
受保护的方法受 Silverlight for Windows Phone 支持Finalize允许对象在垃圾回收对 Object 进行回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法受 Silverlight for Windows Phone 支持GeneratorPositionFromIndex获取项在指定索引处的生成位置。
公共方法受 Silverlight for Windows Phone 支持GetHashCode用作特定类型的哈希函数。 (继承自 Object。)
公共方法受 Silverlight for Windows Phone 支持GetType获取当前实例的 Type (继承自 Object。)
公共方法受 Silverlight for Windows Phone 支持IndexFromContainer返回具有指定生成的容器的项的索引。
公共方法受 Silverlight for Windows Phone 支持IndexFromGeneratorPosition返回映射到指定 GeneratorPosition 的索引。
公共方法受 Silverlight for Windows Phone 支持ItemFromContainer返回与指定生成的容器对应的项。
受保护的方法受 Silverlight for Windows Phone 支持MemberwiseClone创建当前 Object 的浅表副本。 (继承自 Object。)
公共方法受 Silverlight for Windows Phone 支持ToString返回表示当前对象的字符串。 (继承自 Object。)
页首

  名称说明
公共事件受 Silverlight for Windows Phone 支持ItemsChanged当项集合的内容更改时发生。
页首

  名称说明
显式接口实现私有方法受 Silverlight for Windows Phone 支持IItemContainerGenerator.GenerateNext返回用于显示下一项的容器元素,并返回其是否为新生成(实现)的容器元素。
显式接口实现私有方法受 Silverlight for Windows Phone 支持IItemContainerGenerator.GetItemContainerGeneratorForPanel返回适合由指定面板使用的 ItemContainerGenerator
显式接口实现私有方法受 Silverlight for Windows Phone 支持IItemContainerGenerator.PrepareItemContainer准备指定元素作为相应项的容器。
显式接口实现私有方法受 Silverlight for Windows Phone 支持IItemContainerGenerator.Remove移除一个或多个生成(实现)项。
显式接口实现私有方法受 Silverlight for Windows Phone 支持IItemContainerGenerator.RemoveAll移除所有生成(实现)项。
显式接口实现私有方法受 Silverlight for Windows Phone 支持IItemContainerGenerator.StartAt准备生成器以从指定的 GeneratorPosition 开始并以指定的 GeneratorDirection 来生成项,同时控制是否从生成(实现)项开始。
显式接口实现私有方法受 Silverlight for Windows Phone 支持IRecyclingItemContainerGenerator.Recycle解除项容器与其数据项的关联,并保存容器以便稍后可供其他数据项重用。
页首

ItemContainerGenerator 类维护项控件和其项容器(例如,ListBoxListBoxItem)之间的关联。 如果某控件具有关联的 ItemContainerGenerator,则能够通过该控件的属性检索它。

您可以使用 ItemContainerGenerator 并基于项的索引来检索项或通过指定数据项来检索容器。 例如,如果您有一个绑定了数据的 TreeView,并希望基于其索引获取一个 TreeViewItem,则可以使用 ContainerFromIndex 方法。 如果想检索数据项,可使用 ItemFromContainer 方法。

下面的示例演示如何为 TreeView 对象检索 ItemContainerGenerator,并使用 ContainerFromIndex 方法。

运行此示例


public MainPage()
{
    InitializeComponent();
    string[] myItems = new string[]{"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"};
    myTreeView.DataContext = myItems;
}
static int count = 1;
private void Button_Click(object sender, RoutedEventArgs e)
{
    TreeViewItem item = (TreeViewItem)myTreeView.ItemContainerGenerator.ContainerFromIndex(3);
    item.IsExpanded = true;
    if (count < 5)
    {
        item.Items.Add("Child " + count.ToString());
        count++;
    }
}



<StackPanel x:Name="LayoutRoot" Background="White">
    <sdk:TreeView x:Name="myTreeView" Width="200" ItemsSource="{Binding}" Margin="5"/>
    <Button Content="Add Child to Item 4" Width="150" Click="Button_Click"/>
</StackPanel>


Silverlight

受以下版本支持:5、4、3

Silverlight for Windows Phone

受以下版本支持:Windows Phone OS 7.1、Windows Phone OS 7.0

有关 Silverlight 支持的操作系统和浏览器的列表,请参见 支持的操作系统和浏览器

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

社区附加资源

添加
显示:
© 2014 Microsoft