2011-11-13 5 views
8

なぜ暗黙のDataTemplateが機能しないのですか?コメントされたインラインDataTemplateのみが動作します。暗黙のDataTemplateが機能しない

注:DataTemplateの両方を削除すると、ProductListViewフルタイプ名の文字列が表示されます。プロパティの型がObjectあるよう

<Window.Resources> 
    <DataTemplate DataType="vm:ProductListViewModel"> 
    <v:ProductListView/> 
    </DataTemplate> 
</Window.Resources> 

<TabControl ItemsSource="{Binding Tabs}" TabStripPlacement="Left"> 
    <TabControl.ItemTemplate>  
    <DataTemplate> 
     <TextBlock Text="{Binding Key}"/> 
    </DataTemplate>   
    </TabControl.ItemTemplate> 
    <TabControl.ContentTemplate> 
    <DataTemplate> 
     <ContentPresenter Content="{Binding Value}"> 

     <!--ContentPresenter.ContentTemplate> 
      <DataTemplate DataType="vm:ProductListViewModel"> 
      <v:ProductListView/> 
      </DataTemplate> 
     </ContentPresenter.ContentTemplate--> 

     </ContentPresenter> 
    </DataTemplate> 
    </TabControl.ContentTemplate> 
</TabControl> 

答えて

11

DataTypex:Typeを使用する必要がありますので、あなたはDataType="ns:Type"を入力する場合は、文字列"ns:Type"に設定します。プロパティのタイプがType(たとえばStyle.TargetTypeの場合)の場合、XAMLプロセッサは自動的にそのstringTypeに変換します。

したがって、ここであなたが書く必要があります。

<DataTemplate DataType="{x:Type vm:ProductListViewModel}"> 
    <v:ProductListView/> 
    </DataTemplate> 

+0

グッドキャッチ(プロパティタイプは、XMLデータのデータ・テンプレートを許可することについての詳細は、マニュアルを参照してくださいすることObjectです)。ありがとう。 – Shimmy

関連する問題