C# ContentControl显示的不同内容(System.Windows.DataTemplates),而不是必需的图标
我正在制作一个带有图标的组合框。这个组合框由一些项目组成,这些项目有一个名称和一个图标,图标的类型与它所属的类型相同 虽然我的尝试在一定程度上取得了成功,但我得到了一个字符串,上面写着“System.Windows.DataTemplate”,它应该显示相应的图标C# ContentControl显示的不同内容(System.Windows.DataTemplates),而不是必需的图标,c#,wpf,xaml,datatemplate,C#,Wpf,Xaml,Datatemplate,我正在制作一个带有图标的组合框。这个组合框由一些项目组成,这些项目有一个名称和一个图标,图标的类型与它所属的类型相同 虽然我的尝试在一定程度上取得了成功,但我得到了一个字符串,上面写着“System.Windows.DataTemplate”,它应该显示相应的图标 我觉得我调用内容控制器的方式有问题。您应该使用DataTemplate资源设置ContentTemplate属性,而不是content <ContentControl Content="{Binding}"> &l
我觉得我调用内容控制器的方式有问题。您应该使用DataTemplate资源设置
ContentTemplate
属性,而不是content
<ContentControl Content="{Binding}">
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type dc:ComboBoxItem}}, Path=DataContext, Converter={StaticResource FormBuilderClient_TypeOfConverter}}" Value="{x:Type models:FileSettingsModel}" >
<Setter Property="ContentTemplate" Value="{StaticResource FileIcon}" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type dc:ComboBoxItem}}, Path=DataContext, Converter={StaticResource FormBuilderClient_TypeOfConverter}}" Value="{x:Type models:ServerSettingsModel}" >
<Setter Property="ContentTemplate" Value="{StaticResource ServerIcon}" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type dc:ComboBoxItem}}, Path=DataContext, Converter={StaticResource FormBuilderClient_TypeOfConverter}}" Value="{x:Type models:HomeSettingsModel}" >
<Setter Property="ContentTemplate" Value="{StaticResource HomeIcon}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
这样,ContentControl应该选择正确的模板,而不使用任何触发器:
<ContentControl Content="{Binding}"/>
<ContentControl Content="{Binding}"/>