2010-05-09 5 views
0

J'utilise le modèle MVVM pour créer une application autonome WPF. Mon programme compile dans Visual Studio 2008, mais je reçois fréquemment des avertissements dans l'éditeur pour mes DataTemplates.Un DataTemplate peut-il être une page?

Dans mon MainWindow.xaml, je l'ai défini DataTemplate suivante:

<DataTemplate DataType="{x:Type ViewModels:TagViewModel}"> 
     <Views:TagView /> 
    </DataTemplate> 

Où "TagView" est dérivé d'une page, plutôt que d'un UserControl ordinaire.

Cela provoque le message suivant apparaît à chaque fois que je recharge le concepteur dans Visual Studio.. « Impossible de créer une instance de type « TagView » Pourtant, la solution compile bien et le programme semble fonctionner correctement

Est-ce un bogue dans l'éditeur de Visual Studio 2008 ou suis-je en train de faire quelque chose de mal?

Répondre

1

Vous pouvez certainement le faire, et le fait que cela fonctionne dans votre programme est une démonstration assez claire.Si le concepteur ne peut pas créer une instance , cela signifie généralement qu'il y a du code dans le constructeur sur lequel il échoue, peut-être des singletons non initialisés ou quelque chose de ce genre Regardez attentivement le code du constructeur et voyez s'il y a un re les dépendances qui ne seraient pas présentes dans le concepteur.

+0

Merci, Charlie. Tu as raison; cela n'a rien à voir avec TagView dérivé de Page. C'était quelque chose que je faisais dans le contrôle TagView lui-même. J'ai posé une question de suivi plus spécifique ici: http://stackoverflow.com/questions/3010923/can-the-mvvm-light-viewmodellocator-be-used-in-nested-viewmodels – dthrasher

Questions connexes