XAML中的自定义类给出了未解决的标记错误

时间:2011-07-18 16:25:23

标签: c# wpf xaml

我已经创建了以下XAML(简称为缩短版):

<Window ...
    xmlns:Models="clr-namespace:Project.Presentation.Models;assembly=Project"
    ...>
    <Window.Resources>
        <Models:ProfileCollection x:Key="Profiles" />
    </Window.Resources>
</Window>

ProfileCollection简单地定义为:

public class ProfileCollection : ObservableCollection<Profile>
{
    public ProfileCollection()
    {
        foreach (Profile p in Configuration.Instance.Profiles)
            this.Add(p);
    }
    // code that handles static added/removed events
}

这符合XAML and Custom Classes on MSDN中规定的要求。

然而,当我尝试编译时,我收到此错误:

错误MC3074:XML名称空间“clr-Project.Presentation.Models; assembly = Project”中不存在标记“ProfileCollection”。第18行第7位。

我也尝试过:

<Window ...
    xmlns:SystemCollections="clr-namespace:System.Collections;assembly=mscorlib"
    ...>
    <Window.Resources>
        <SystemCollections:ArrayList x:Key="arrayList" />
    </Window.Resources>
</Window>

工作正常。

public class SomeList : ArrayList { public SomeList() { } }

尝试使用此对象时出现同样的错误。这是和以前一样的错误。

<Models:SomeList x:Key="arrayList" />  <!-- MC3074 -->

2 个答案:

答案 0 :(得分:6)

'ProfileCollection'类是否放在命名空间'Project.Presentation.Models中?此外,如果XAML和类都在'Project'程序集中,请尝试从xmlns声明中删除“assembly=Project

祝你好运;)

答案 1 :(得分:0)

我得到了同样的错误。原因是不同的.NET框架(程序集有4.6.1,我的基础项目有4.5.1)。

也许这些信息对其他人有帮助(错误代码在我看来并不是很精确......)。