Emm*_*uel 26 wpf xaml datatemplate
当我尝试指定多个DataTemplates供ContentControl使用以便使用正确的(基于Type)时,我最终得到的内容只是Content的ToString()值.
<ContentControl DataContext="{Binding MyTreeRootViewModels}" Content="{Binding /, Path=CurrentlySelectedTreeViewModel}">
<ContentControl.Resources>
<DataTemplate DataType="x:Type vm:TypeAViewModel">
<StackPanel>
<local:TypeAUserControl />
</StackPanel>
</DataTemplate>
<DataTemplate DataType="x:Type vm:TypeBViewModel">
<StackPanel>
<local:TypeBUserControl />
</StackPanel>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,当CurrentSelectedTreeViewModel返回TypeAViewModel的树节点时,我会看到"MyApp.ViewModel.TypeAViewModel".我希望看到我的TypeAViewModelUserControl.
我尝试在我的一个DataTemplates中放置一个<TextBlock Text ="TESTING"/>元素,只是为了查看问题是否与我的用户控件有关.结果相同.
我有什么想法我做错了吗?
(顺便说一下,CurrentlySelectedTreeViewModel是一个返回我的树视图中当前所选节点的属性.它似乎工作正常 - 当我在树中选择节点时,节点的正确类型名称显示为ContentControl).
Bub*_*rap 30
这个x:Type位应该在花括号之间{}:
<DataTemplate DataType="{x:Type vm:TypeAViewModel}">
Run Code Online (Sandbox Code Playgroud)