2

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

DataTemplate仅包含一个自定义实例,其UserControl属性通过 绑定到字符串{Binding}

问题是因为我的数据项只是字符串,我需要UserControl直接以编程方式访问我的实例,但我似乎无法弄清楚如何!

我试过了:

var item = tagBar.Items[ tagBar.Items.Count - 1 ];

...但这只是返回字符串。还:

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

...返回 a ContentPresenter,我不知道如何处理ContentPresenter以获取 my 的实例UserControl

??

这类似于这个问题,但它从未得到正确回答,并且也是 Silverlight 特有的,而这是 WPF。

4

1 回答 1

2

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

于 2008-12-05T03:10:55.890 回答