2012-08-06 56 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

相關問題