2012-08-06 52 views
0

我弄糊涂了Windows 8,因为我习惯访问我页面已经确定这样的一个模板:如何访问一个DataTemplate在C#

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

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

你有什么想法吗?还是应该前面的例子工作?

谢谢

回答

1

FrameworkElement的有Resources property,你可以通过它访问的索引,像这样:

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

此属性仅填充了元素定义的资源,而不是充分收集应用程序中的资源。因此,该模板会被发现是否依赖于你在哪里定义

你可以找到像这样在App.xaml中定义的(以及它的合并资源字典)资源:

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

谢谢它运作良好。我发现为什么我得到这个问题,这是因为我使用的是DataTemplateSelector,它需要链接到页面资源中定义的模板,如下所示: ' Thank you for your answer – 2012-08-07 09:51:54

相关问题