【发布时间】:2016-03-26 20:32:18
【问题描述】:
我必须将我的 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”创建类型时出错。
谁能给我一个提示?
【问题讨论】:
标签: c# xaml binding namespaces resourcedictionary