Мне действительно нужны еще некоторые идеи относительно того, что вызывает это, в настоящее время это управляет мной стена.
У меня есть пользовательский элемент управления Xaml, который содержит другой пользовательский элемент управления как это:
<UserControl x:Class="MyModule.View.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:igDock="http://infragistics.com/DockManager"
xmlns:views="clr-namespace:MyModule.View"
>
<StackPanel x:Name="panel">
<views:MyHeaderView/>
<igDock:XamDockManager x:Name="dockingManager"/>
</StackPanel>
</UserControl>
Это в модуле Призмы (следовательно название MyModule), но иначе я не думаю, что это - что-либо особенно необычное.
Теперь, как только я добавляю, что имя к заголовку просматривает сбои кода для компиляции, например.
<views:MyHeaderView x:Name="header"/>
Ошибка, которую я возвращаю, просто:
"The type name 'View' does not exist in the type MyModule.MyModule'"
Я попытался переместить содержавший пользовательский элемент управления в другое пространство имен, создав пустой пользовательский элемент управления и пробуя тем (тот же результат) и удалив XamDockManager, но ничто, кажется, не имеет никакого значения.
Кто-либо может пролить какой-либо свет на это?
Думаю, я нашел ответ.
Если я переименую класс модуля в MyModuleThingy, он компилируется. Кажется, проблема возникает из-за того, что класс модуля имеет то же имя, что и пространство имен, которое его содержит (MyModule.MyModule).
Если кто-нибудь может сообщить мне, почему это может быть проблемой, мне было бы очень интересно узнать. В частности, потому, что я унаследовал много кода, который, кажется, является общим шаблоном в данной конкретной реализации Prism.
Может быть, у вас есть класс с именем "View", как и пространство имен?
WPF не любит, когда вы используете x: Name для элемента управления, определенного в вашей сборке, при условии, что xmlns: views = "clr-namespace: MyModule.View" - это та же сборка, что и ваша
Используйте имя, и все будет в порядке