我必须将DataTemplates外包给ResourceDictionary。除了检测DataTemplates的DataTypes之外,其他一切工作正常。

为了获得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>




如果我通过函数获得字典,则会出现异常,
在类中找不到DataType“ Company”,但是当我编写“ classes:”时,将得到Company的建议,因此名称空间完全没有错。

错误消息将是这样的(不是我的母语):

找不到名称为“ Company”的公共类型。

是的,“公司”类别设置为公开。

在此之前,我尝试过:

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>

关于c# - ResourceDictionary找不到DataTemplate的DataType,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34384300/

10-11 01:27