0

次のようなページで定義したテンプレートにアクセスすることに慣れているため、Windows 8 と混同されます。

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

問題は、Windows 8 では FindResource メソッドが存在しないように見えることです。リソース ディクショナリにアクセスしようとしましたが、成功しませんでした。

アイデアはありますか、または前の例が機能するはずですか?

ありがとうございました

4

1 に答える 1

1

FrameworkElement にはResources プロパティがあり、次のようにインデクサーを介してアクセスできます。

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

このプロパティには、その要素で定義されたリソースのみが取り込まれ、アプリケーション内のリソースの完全なコレクションではありません。したがって、そのテンプレートが見つかるかどうかは、定義した場所によって異なります。

次のように、App.xaml で定義されているリソース (およびマージされたリソース ディクショナリ) を見つけることができます。

var template = Application.Current.Resources["myTemplate"] as DataTemplate;
于 2012-08-06T23:35:21.033 に答える