为什么下面隐含DataTemplate
不行?仅内嵌注释DataTemplate
将工作。
注意:如果我删除两者DataTemplate
s,我看到一个字符串表示形式ProductListView
完整类型名称。
<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>
DataType需要使用x:Type
因为该属性的类型是Object
,所以如果你输入DataType="ns:Type"
你把它设置为字符串"ns:Type"
。如果该属性的类型是Type
(与Style.TargetType例如)XAML 处理器会自动转换string
to a Type
.
因此在这里你应该写:
<DataTemplate DataType="{x:Type vm:ProductListViewModel}">
<v:ProductListView/>
</DataTemplate>
(属性类型为Object
以允许 XML 数据的数据模板化,请参阅文档以获取更多信息)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)