Я создал следующий 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 -->