Silverlight的DataTemplate中缺少FindName方法是否有解决方法?

时间:2008-11-13 20:12:57

标签: silverlight datatemplate findname

根据C#编译器和Silverlight 2文档,Silverlight不为DataTemplate类提供FindName方法。我想在ContentPresenter中找到一个Border。 SilverLight 2中最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

如果边框位于DataTemplate内,而不是ControlTemplate,那么我过去唯一能够做到这一点的方法就是使用VisualTreeHelper来定位我需要的元素。

答案 1 :(得分:0)

我不完全确定我理解这个场景,但是既然你提到了DataTemplate我假设你正在使用模板。

如果您正在使用模板,那么您所做的就是为边框指定名称(x:Name =“border”),然后覆盖OnApplyTemplate方法。在该方法中,您使用GetTemplateChild并传递您使用的名称。这将返回对边框的引用。

如果您没有使用模板并且引用ContentPresenter,那么您可以编写一个递归函数来查看子项的Content属性,如果它不是边框,则在其内容上调用相同的函数

相关问题