一.方法:
ContainerFromIndex:返回 ItemCollection 中指定索引處的項的容器。
ContainerFromItem:返回與制定的項對應的容器(ComboxItem等條目控件)。
Equals(Object):確定制定的Object是否等於當前的Object。
Finalize:允許對象在垃圾回收對Object回收之前嘗試釋放資源並嘗試其它清理操作。
GeneratorPositionFromIndex:獲取項在指定索引處的生成位置。
GetHashCode:用作特定類型的哈希函數。
GetType:獲取當前實例的Type。
IndexFromContainer:獲取具有指定的生成的容器的項的索引。
IndexFromGeneratorPosition:返回映射到指定GereratorPosition的索引。
ItemFromContainer:返回與指定的容器生成的所對應的項。
二.事件
ItemsChanged : 當集合內的項發生變更時發生。
三.注意
備注 ItemContainerGenerator 類維護項控件和其項容器 之間的關聯。 如果某控件具有關聯的ItemContainerGenerator,則能夠通過該控件的屬性檢索它。
您可以使用 ItemContainerGenerator 並基於項的索引來檢索項或通過指定數據項來檢索容器。 例如,如果您有一個綁定了數據的 Combox,並希望基於其索引獲取一個 ComboxItem,則可以使用 ContainerFromIndex 方法。 如果想檢索數據項,可使用 ItemFromContainer方法。
四.示例:
C#:
public MyTest() { InitializeComponent(); string[] myCollection= new string[]{"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"}; myCombox.DataContext = myCollection; }
static int count = 1;
private void Button_Click(object sender, RoutedEventArgs e)
{
ConmboxItem item = (ComboxItem)
myCombox.ItemContainerGenerator.ContainerFromIndex(3);
item.IsExpanded = true; if (count < 5) { item.Items.Add("Child " + count.ToString()); count++; }
}
Xaml:
<StackPanel x:Name="LayoutRoot" Background="White"> <Combox x:Name="myCombox" Width="200" ItemsSource="{Binding}" Margin="5"/> <Button Content="Add Child to Item 4" Width="150" Click="Button_Click"/> </StackPanel>