DataTemplateSelectorを見る "Windows8 Programming"
どうも。最近は、Windows8のModern Styleのアプリを書いていたりしてます。WPFとかXAMLとかは既に触ったことがあったので、いろいろと試していたのですが、いろんなAPIが消えていたり動かなかったりで四苦八苦してます。
今日は、最近試してみたDataTemplateSelectorについて書きたいと思います。何をしたかったかというと、クラスに応じてDataTemplateを切り替えたかったのですが、DataTemplate.DataTypeはなかったのでDataTemplateSelectorを使うことにしました。
DataTemplateSelector classはこちら。
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.datatemplateselector
protected virtual DataTemplate SelectTemplateCore(
object item,
DependencyObject container
)
SelectTemplateCoreメソッドを実装していく感じです。はじめは、containerからリソースを検索しようとしたのですが、FindResourceメソッドはないし、自分で実装しようとしてもcontainer.Parentがnullなので探索もできなかったのです。
そこで、作成するDataTemplateSelectorの子クラスのContentをResourceDictionaryにして、そこのリソースを取得することにしました。
ということで、できたのがClassNameDataTemplateSelectorです。Gistにソースあげときます。
https://gist.github.com/3759888