我必须将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/