C# WPF未应用数据模板

C# WPF未应用数据模板,c#,wpf,mvvm,C#,Wpf,Mvvm,在我的空闲时间,我正在尝试将一个项目重构为完整的MVVM模型,并使用WPF数据绑定、模板化。。。等等。 但问题是。我有一个不应用数据模板的控件 <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

在我的空闲时间,我正在尝试将一个项目重构为完整的MVVM模型,并使用WPF数据绑定、模板化。。。等等。 但问题是。我有一个不应用数据模板的控件

    <UserControl
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:vm="clr-namespace:WPFCADCore.ViewModels.CADPrimitives;assembly=WPFCADCore"
                 xmlns:local="clr-namespace:WPFCADCoreControls.Views.Editors" x:Class="WPFCADCoreControls.Views.Editors.EditorBaseView"
                 mc:Ignorable="d" 
                 d:DesignHeight="300" d:DesignWidth="300"
                 d:DataContext="{d:DesignData Source=EditorBaseDesignData.xaml}">
        <UserControl.Resources>
            <DataTemplate DataType="{x:Type vm:CADLinePrimitiveViewModel}">
                <Line X1="{Binding Begin.X}" Y1="{Binding Begin.Y}" 
                  X2="{Binding End.X}" Y2="{Binding End.Y}"
                  Stroke="{Binding LineColor}" StrokeThickness="{Binding LineWidth}">
                </Line>
            </DataTemplate>
        </UserControl.Resources>
        <ItemsControl ItemsSource="{Binding Entities}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Canvas Background="White"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>
    </UserControl>

这就是我所看到的一切

所以绑定到源代码是可行的,但dataTemplate并没有自动应用

我试着用 DataType=“vm:CADLinePrimitiveViewModel” DataType=“CADLinePrimitiveViewModel” 没有结果

我无法将此模板插入ItemSource,因为那里将有不同类型的对象,而不仅仅是线条

ObservableCollection<ICADEntityViewModel> Entities
ObservableCollection实体
其中ICADEntityViewModel是接口


有什么建议吗?变通办法

找到了类似的答案,更像是解决办法。 我当时正在开发WPF类库,当我创建WPF应用程序并在那个里复制代码时,它开始正常工作。
我不知道为什么它在类库中不起作用

我在本地试用过,效果很好。是否可以检查输出窗口中是否存在任何可能导致问题的错误?设置ItemsControl的ItemTemplate。正如我所说,我无法在ItemsControl中设置ItemTemplate,因为源中会有不同的类型,模板应根据类型应用,此外,我想在resourceDictionary中定义模板,这个例子只是为了简单起见。