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