如何在C#中访问DataTemplate

时间:2012-08-06 09:59:34

标签: windows windows-8

我对Windows 8感到困惑,因为我习惯访问我在页面中定义的模板,如下所示:

  FrameworkElement element = container as FrameworkElement;
  DataTemplate myTemplate = element.FindResource("myTemplate") as DataTemplate;

问题是在Windows 8中,FindResource方法似乎不再存在。我尝试访问资源字典但没有任何成功。

您有任何想法,或者上一个示例是否有效?

谢谢

1 个答案:

答案 0 :(得分:1)

FrameworkElement有一个Resources property,您可以通过它的索引器进行访问:

var template = element.Resources["myTemplate"] as DataTemplate;

此属性仅使用在该元素上定义的资源填充,而不是应用程序中的完整资源集合。因此,是否找到该模板取决于您定义的位置。

您可以找到App.xaml中定义的资源(以及它的合并资源字典),如下所示:

var template = Application.Current.Resources["myTemplate"] as DataTemplate;