2017-06-02 3 views
1

J'ai créé un assistant avec 4 pages en utilisant Orc.Wizard. Lorsque je tente de naviguer vers la page 2, le viewModelLocator dans le WizardPageSelectionBehavior n'est pas capable de résoudre le ViewModel associé à la page WizardPage.Catel Orc.Wizard Résolution de pages

J'ai nommé tous mes ViewModels Assistant, Assistant Pages et Assistant Vues de la même façon:

Page 0 utilise les classes suivantes:

DatConfigWizardPageViewModel DatConfigWizardPageView DatConfigWizardPage

Page 1:

LoadOptionsWizardPageViewModel LoadOptionsWizardPageView LoadOptionsWizardPage

J'ai 2 autres pages, mais c'est seulement la 2ième page qu'il échoue pour résoudre le ViewModel associé à la page de l'Assistant. Quelqu'un at-il des suggestions sur la façon de déterminer pourquoi cela se produit et comment le résoudre?

Répondre

0

Vous pouvez activer au démarrage de votre application pour l'enregistrement de débogage Catel:

LogManager.AddDebugLogListener();

Ensuite, vous avez les informations extrêmement détaillées pourquoi le type ne peut pas être résolu et/ou construit.

Quelques options possibles:

  1. Assurez-vous que le constructeur est public (sera affiché dans le journal de débogage si ce n'est pas le cas)
  2. Assurez-vous que les types injectés à l'intérieur du constructeur sont enregistrés dans le ServiceLocator (sera montré dans la notation de débogage si ce n'est pas le cas)
  3. Il pourrait y avoir une faute de frappe quelque part, mais j'ai vérifié vos noms dans ce billet et ils semblent corrects.
+0

Merci. J'ai ajouté l'appel à LogManager.AddDebugLogListener(); Cependant, je ne reçois que la journalisation abrégée des composants de la bibliothèque Orc.Wizard. Voici une photo de ce à quoi ça ressemble. 09: 07: 38: 769 => [DEBUG] [Orc.Wizard.WizardBase] [8] Ajout de la page 'DesktopTool.Wizards.Models.DatFileConfigWizardPage' à l'index '0' 09: 07: 38: 952 => [DEBUG] [Orc.Wizard.WizardBase] [8] Ajout de la page "DesktopTool.Wizards.Models.OptsWizardPage" à l'index "1" –

+0

Assurez-vous de mettre "ignoreCatelLogging" à * false * –

+1

Yep, fait cela. J'ai résolu le problème mais je ne comprends toujours pas pourquoi (je n'ai pas encore trouvé le code de catel pour le comprendre). Je viens de créer de nouvelles classes et les nommé OptsWizardPage OptsWizardPageView OptsWizardPageViewModel Les modèles de vue de résoudre correctement maintenant. Je vais tracer avec les anciens noms, mais en regardant les conventions de nommage, je ne pouvais pas voir pourquoi il ne fonctionnait pas. BTW, Catel a vraiment quelques fonctionnalités intéressantes. Vraiment beau boulot avec tout ça. –