2009-01-28 8 views
1

J'ai un formulaire XAML à utiliser dans mon application, j'ai sous-classé la classe Frame pour créer la mienne et j'ai modifié l'interface pour spécifier ma propre classe pour le contenu (comme j'ai besoin d'accéder aux propriétés sur le contenu pour la liaison de données). Le problème vient alors dans le concepteur que le compilateur dit qu'il ne peut pas créer une instance de mon contrôle - j'ai essayé de faire quelques vérifications de concepteur sur le peu de propriété offensant mais cela n'a pas fonctionné non plus.Impossible de créer un objet personnalisé XAML

Comment puis-je obtenir le contrôle pour afficher? Fonctionne très bien à l'exécution ...

XAML:

<Grid Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2"> 
<views:PageFrame Name="Content_MainPage" Frame.NavigationUIVisibility="Hidden"/>      
</Grid> 

CS:

 public new BaseView Content 
    { 
     get 
     { 
      if (DesignerProperties.GetIsInDesignMode(this)) 
      { 
       return new BaseView(); 
      } 
      else 
      { 
       return (BaseView)base.Content; 
      } 
     } 
     set 
     { 
      if (DesignerProperties.GetIsInDesignMode(this)) 
      { 
       base.Content = new BaseView(); 
       FrameTitle = "design mode"; 
      } 
      else 
      { 
       base.Content = value; 
       FrameTitle = value.Title; 
      } 
     } 
    } 

Répondre

0

je suis tombé sur un problème similaire lors de la création ma propre classe Panel.

Votre classe PageFrame est-elle définie dans le même assembly que votre XAML?

J'ai trouvé que la seule façon de faire fonctionner cette fonction était de déplacer ma classe "PageFrame" dans un nouvel assemblage. De mémoire, je pense que j'ai même dû construire cet assemblage à l'avance, de sorte que l'assemblage puisse être référencé via une référence de fichier (par opposition à une référence de projet).

j'ai haï cette solution, donc j'espère que vous trouverez un nettoyant un :)

Avez-vous VS2008 SP1 installé? J'avais espéré que MS réparerait ce bug. Je n'ai pas essayé d'enlever ma solution de contournement pour vérifier ...

+0

Je pense un « Salut » est en ordre trop ... ;-) –

0

Son dans le même ensemble - et oui j'ai VS2008 SP1 installé aussi. Ce n'est pas que la suppression de la propriété ci-dessus permet un bon fonctionnement d'un point de vue vs, mais évidemment pas de mon point de vue!

je vais donner un aller - merci Antony.

+0

Pas de problème. BTW: n'avons-nous pas l'habitude de travailler ensemble? –

+0

Oui, je l'ai vraiment pensé! J'espère que tout va bien. –

+0

Les choses vont bien ici. J'espère que votre déménagement en Asie fonctionne bien. Faites-moi savoir comment vous allez avec votre problème de concepteur ... –

Questions connexes