C# ContentControl显示的不同内容(System.Windows.DataTemplates),而不是必需的图标

C# ContentControl显示的不同内容(System.Windows.DataTemplates),而不是必需的图标,c#,wpf,xaml,datatemplate,C#,Wpf,Xaml,Datatemplate,我正在制作一个带有图标的组合框。这个组合框由一些项目组成,这些项目有一个名称和一个图标,图标的类型与它所属的类型相同 虽然我的尝试在一定程度上取得了成功,但我得到了一个字符串,上面写着“System.Windows.DataTemplate”,它应该显示相应的图标 我觉得我调用内容控制器的方式有问题。您应该使用DataTemplate资源设置ContentTemplate属性,而不是content <ContentControl Content="{Binding}"> &l

我正在制作一个带有图标的组合框。这个组合框由一些项目组成,这些项目有一个名称和一个图标,图标的类型与它所属的类型相同

虽然我的尝试在一定程度上取得了成功,但我得到了一个字符串,上面写着“System.Windows.DataTemplate”,它应该显示相应的图标


我觉得我调用内容控制器的方式有问题。

您应该使用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}"/>