如何从数据绑定ItemsControl获取模板化项目的实例? (WPF)

时间:2008-12-05 03:04:49

标签: wpf data-binding datatemplate itemscontrol contentpresenter

我有<ItemsControl>个自定义<DataTemplate>(以及一个只有<ItemsPanelTemplate>的自定义WrapPanel),通过ItemsSource绑定到一个简单的DataTemplate可观察的字符串集合。

UserControl只包含自定义{Binding}的实例,其属性通过UserControl绑定到字符串。

问题是因为我的数据项只是字符串,我需要直接以编程方式访问var item = tagBar.Items[ tagBar.Items.Count - 1 ]; 的实例,但我似乎无法弄清楚如何!

我试过了:

var item2 = tagBar.ItemContainerGenerator.ContainerFromIndex( tagBar.Items.Count - 1 );

...但只返回字符串。也:

ContentPresenter

...返回ContentPresenter,我无法弄清楚如何使用UserControl来访问{{1}}的实例。

...

这类似于this question,但它从未得到正确回答,并且也特定于Silverlight,而这是WPF。

1 个答案:

答案 0 :(得分:2)

我发布的答案over here涉及将一个元素集中在DataTemplate中,但它应该提供您需要的代码。它涉及在DataTemplate上使用FindName方法来查找其中的控件。如果你给UserControl一个名字,你应该是对的。