2010-12-28 7 views
1

Я один узел XAML зарегистрирован в AssemblyInfo.cs:WPF: XAML пространство имена

[assembly: XmlnsDefinition("http://schemas.mysite.es/wpf", "SWC.ViewModels")] 

И в моем пространстве имен я заяц этих классов:

namespace SWC.ViewModels 
{ 
    public class MenuViewModel 
     : ObservableCollection<MenuViewModel> 
    { 
     public MenuViewModel() 
      : base() 
     { 
     } 
    } 
} 

Если я использую пространство имен в элементе управления пользователем XAML,

<UserControl x:Class="SWC.UserControls.UserMenu" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:customMenu="http://schemas.mysite.es/wpf"> 

Я могу использовать класс в моем Xmlns пространстве имен,

<UserControl.Resources> 
     <customMenu:MenuViewModel x:Key="MenuItemsSource"> 

Но, когда я запустить приложение, компилятор сказал

The label 'MenuViewModel' dosen't exist in the namespace XML 'http://schemas.mysite.es/wpf' 

Все, может мне помочь ?? Я сумасшедший с этой проблемой !! С уважением,

+0

Добро пожаловать в переполнение стека! Совет по форматированию: чтобы получить блоки кода, префикс каждой строки с четырьмя пробелами или нажмите кнопку '{}'. –

ответ

1

Я думаю, вам нужно указать сборку, в которой находятся ваши пользовательские элементы управления. Сборка также должна ссылаться на проект (в разделе «Ссылки»).

xmlns:customMenu="clr-namespace:customMenuNamespace;assembly=customMenuLibrary" 

В противном случае я не вижу, как компилятор может найти свою реализацию только через «http://schemas.mysite.es/wpf». Что по этому адресу? Две майкрософт схемы

http://schemas.microsoft.com/winfx/2006/xaml/presentation 
http://http://schemas.microsoft.com/winfx/2006/xaml 

работа как некоторые идентификаторы для XAML компилятора, нет ничего на эти адреса.

Смежные вопросы