2010-12-28 5 views
1

Je XAML un ensemble enregistré dans AssemblyInfo.cs:WPF: espace de noms XAML

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

Et dans mon espace de noms que je hace ces classes:

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

Si j'utilise l'espace de noms dans un contrôle utilisateur 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"> 

je peux utiliser la classe dans mon espace de noms xmlns,

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

Mais, quand j'exécute l'application, le compilateur dit

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

Tout, peut me aider ?? Je suis fou avec ce problème !! Cordialement,

+0

Bienvenue dans Stack Overflow! Un conseil de formatage: pour obtenir des blocs de code, préfixez chaque ligne avec quatre espaces ou cliquez sur le bouton '{}'. –

Répondre

1

Je pense que vous devez spécifier l'ensemble dans lequel vos contrôles customMenu existent. L'assembly doit également être référencé à partir du projet (dans la section Références).

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

Sinon, je ne vois pas comment le compilateur peut trouver votre mise en œuvre que par « http://schemas.mysite.es/wpf ». Qu'y a-t-il à cette adresse? Les deux schémas Microsoft

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

fonctionnent comme des identifiants pour le compilateur XAML, il n'y a rien à ces adresses.