我对Windows 8感到困惑,因为我习惯访问我在页面中定义的模板,如下所示:
FrameworkElement element = container as FrameworkElement;
DataTemplate myTemplate = element.FindResource("myTemplate") as DataTemplate;
问题是在Windows 8中,FindResource方法似乎不再存在。我尝试访问资源字典但没有任何成功。
您有任何想法,或者上一个示例是否有效?
谢谢
答案 0 :(得分:1)
FrameworkElement有一个Resources property,您可以通过它的索引器进行访问:
var template = element.Resources["myTemplate"] as DataTemplate;
此属性仅使用在该元素上定义的资源填充,而不是应用程序中的完整资源集合。因此,是否找到该模板取决于您定义的位置。
您可以找到App.xaml中定义的资源(以及它的合并资源字典),如下所示:
var template = Application.Current.Resources["myTemplate"] as DataTemplate;