Je suis en train de concevoir un contrôle utilisateur pour afficher une note. J'ai donc un NoteViewModel. Dans mon concepteur, je veux avoir une note de test. J'ai donc ce qui suit dans mon XAML:Données de test XAML - le concepteur peut convertir les types mais le moteur d'exécution ne peut pas
<UserControl.Resources>
<local:NoteViewModel x:Key="ViewModel" d:IsDataSource="True">
<local:NoteViewModel.Note>
<localweb:Note
NoteID="1"
CreatedBy="Some Guy"
CreatedDate="2010-01-01 8:00 AM"
Category="Some Category"
NoteText="Some Text"
/>
</local:NoteViewModel.Note>
</local:NoteViewModel>
</UserControl.Resources>
Cela fonctionne très bien au moment du design. Mais à l'exécution, je reçois des erreurs de ne pas être en mesure de convertir "1" en un Int32, et ne pas être en mesure de convertir "2010-01-01 8:00 AM" en un DateTime. Pourquoi le concepteur est-il capable de gérer cela, mais pas l'exécution? Comment devrais-je changer mon XAML pour que le concepteur puisse montrer la note de test mais l'exécution ne plante pas?
L'erreur sur la conversion de "1" en Int32 est particulièrement déroutante. Comment la propriété NoteID est-elle déclarée? Pouvez-vous révéler le code pour cela? –
Oui, le code NoteId pourrait donner quelques indices. Moi j'ai eu un problème étrange comme ci-dessus. Il pourrait y avoir des convertisseurs utilisés à l'intérieur du style. Silverlight ne détectera pas cela. Depuis, le style n'aura pas DataContext. Je suis venu avec une réponse filaire pour la partialité entre le temps de conception silverlight et run-time. Le concepteur est basé sur WPF. –