Пользовательские классы в XAML дают мне неразрешенные ошибки тегов - PullRequest
2 голосов
/ 18 июля 2011

Я создал следующий 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 и пользовательских классах на MSDN .

Однако, когда я пытаюсь скомпилировать, я получаю эту ошибку:

ошибка MC3074: тег 'ProfileCollection' не существует в пространстве имен XML 'clr-Project.Presentation.Models; assembly = Project'. Линия 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 ]

6 голосов
/ 18 июля 2011

Помещен ли класс 'ProfileCollection' в пространство имен 'Project.Presentation.Models? Также, если XAML и класс находятся в 'Project' сборке, попробуйте удалить "assembly=Project" из объявления xmlns

Удачи;)

0 голосов
/ 03 ноября 2016

Я получил ту же ошибку.Причиной были разные .NET Frameworks (сборка имела 4.6.1, а мой базовый проект имел 4.5.1).

Может быть, эта информация помогает другим (код ошибки не очень точен в моем представлении ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...