WPF根据数据项获取条目控件的方法-ItemContainerGenerator
Posted 沪马农
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF根据数据项获取条目控件的方法-ItemContainerGenerator相关的知识,希望对你有一定的参考价值。
一.方法:
ContainerFromIndex:返回 ItemCollection 中指定索引处的项的容器。
ContainerFromItem:返回与制定的项对应的容器(ComboxItem等条目控件)。
Equals(Object):确定制定的Object是否等于当前的Object。
Finalize:允许对象在垃圾回收对Object回收之前尝试释放资源并尝试其它清理操作。
GeneratorPositionFromIndex:获取项在指定索引处的生成位置。
GetHashCode:用作特定类型的哈希函数。
GetType:获取当前实例的Type。
IndexFromContainer:获取具有指定的生成的容器的项的索引。
IndexFromGeneratorPosition:返回映射到指定GereratorPosition的索引。
ItemFromContainer:返回与指定的容器生成的所对应的项。
二.事件
ItemsChanged : 当集合内的项发生变更时发生。
三.注意
您可以使用 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>
以上是关于WPF根据数据项获取条目控件的方法-ItemContainerGenerator的主要内容,如果未能解决你的问题,请参考以下文章
2021-08-20 WPF控件专题 ListView控件详解