ResourceDictionary 找不到 DataTemplate 的 DataType

ResourceDictionary can't find DataType for the DataTemplate

我必须将我的 DataTemplates 外包给 ResourceDictionary。一切正常,除了检测数据模板的数据类型。

为了获取 ResourceDictionary,我编写了以下函数:

public static ResourceDictionary ParseResourceDictionary(String path)
{
        System.Windows.ResourceDictionary templates = new System.Windows.ResourceDictionary();
        templates = new System.Windows.ResourceDictionary() { Source = new System.Uri(path) };
        return templates;
}

我的 ResourceDictionary 看起来像这样:

<ResourceDictionary 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:classes="clr-namespace:ResourceDictTest;assembly=ResourceDictTest"
>

<DataTemplate DataType="{x:Type classes:Company}">
    <TextBlock Text="{Binding Name}"/>
</DataTemplate>

如果我通过我的函数获取字典,我得到异常,即 在 classes 中找不到数据类型 "Company",但是当我写 "classes:" Company 时会得到建议,所以命名空间根本没有错。

错误信息应该是这样的(不是我的母语):

找不到名称为 "Company" 的 public 类型。

是的,class "Company" 设置为 public。

在此之前,我试过:

xmlns:classes="clr-namespace:ResourceDictTest"

而不是这个:

xmlns:classes="clr-namespace:ResourceDictTest;assembly=ResourceDictTest"

并收到消息,从 "classes:Company" 中创建类型时出错。

谁能给我提示?

您是否尝试通过 XAML 获取 ResourceDictionary?

<Application.Resources>
    <ResourceDictionary Source="Resources/ResourceDictTest.xaml" />
</Application.Resources>