我有一个带有自定义<DataTemplate>的<ItemsControl> (还有一个自定义<ItemsPanelTemplate>,它只是一个WrapPanel),通过ItemsSource绑定到一个简单的可观察的字符串集合。
DataTemplate只由自定义UserControl的一个实例组成,该实例的属性通过{Binding}绑定到字符串。
问题是,因为我的数据项只是字符串,所以我需要以编程方式直接访问UserControl的实例,但我似乎不知道如何访问!
我试过了:
var item = tagBar.Items[ tagBar.Items.Count - 1 ];只返回字符串的...but。另外:
var item2 = tagBar.ItemContainerGenerator.ContainerFromIndex( tagBar.Items.Count - 1 );...returns一个ContentPresenter,我不知道如何处理这个ContentPresenter来访问我的UserControl的实例。
??
这类似于this question,但从来没有得到正确的回答,而且也是特定于Silverlight的,而这是WPF。
发布于 2008-12-05 03:10:56
我在over here上发布的答案是关注DataTemplate中的一个元素,但它应该提供您需要的代码。它涉及到在DataTemplate上使用FindName方法来查找其中的控件。如果你给你的UserControl一个名字,你应该是对的。
https://stackoverflow.com/questions/342790
复制相似问题