2016-11-23 2 views
0

J'ai téléchargé prism5.exe de Microsoft et l'a élargi qui a laissé une variété de projets de démarrage rapide. J'ai simplement ouvert la solution 'stock' BasicMVVMQuickstart_Desktop. Au début, j'ai reçu un «impossible de trouver le nom dans l'erreur d'espace de noms» (sur la même ligne que ci-dessous, BTW), mais après la fermeture et la réouverture de Visual Studio par poste de débordement de pile, je reçois cette erreur:WPF Prism base mvvm quickstart erreur de projet 'out of the box'

Your views must implement IView 

Voici le code XAML et la ligne avec l'erreur:

enter image description here

J'ai mentionné d'autres questions, mais ne peut toujours pas déborder de la pile résoudre ce problème. Un message a suggéré une mise à niveau vers Prism 6. J'ai effectué la seule mise à niveau disponible dans NuGet qui a mis à jour Microsoft.Practices.Prism.Mvvvm à v 1.1.1.0.

Je ne vois pas Prism.Core n'importe où dans mon projet, donc je suppose que c'est quelque chose à propos de Visual Studio et des paquets que je ne comprends pas très bien. Quoi qu'il en soit, j'ai désinstallé Prism.Core 4.0 puis Installé Prism.Core 6.2, mais comme je ne vois pas Prism.Core dans Visual Studio, je ne sais pas si quelque chose a été modifié. Donc, en plus d'essayer de comprendre comment corriger l'erreur ci-dessus, j'aimerais aussi comprendre comment j'utilise Prism 6 au lieu de Prism 5. C'est un peu déroutant pour moi.

Répondre

1

Vous utilisez une ancienne version de Prism. Je voudrais (fortement) recommencer avec les derniers morceaux de l'équipe de Prism. Vous pouvez l'obtenir à partir du lien ci-dessous. Il y a aussi beaucoup d'échantillons à choisir. La documentation est à jour, ce qui est toujours agréable. Ce sera beaucoup plus facile que d'essayer de mettre à jour le code que vous avez téléchargé de Microsoft. Il y a beaucoup de changements de rupture entre cette version et la dernière.

Prism Library

Prism WPF Samples

Vous pouvez obtenir de Prism NuGet aussi. Obtenez l'un des packages dont le conteneur IOC est déjà inclus, comme Unity (Prism.Unity) ou MEF (Prism.Mef). Juste obtenir le paquet de base laissera beaucoup à désirer.

Les packages contenant un IOC contiennent toutes les dépendances (Prism.Core, Prism.Wpf, etc.) nécessaires pour démarrer. Je suppose que vous faites une demande du PAM. J'utilise la version Unity, et je recommanderais cela sur la version MEF, parce que j'ai trouvé que MEF était intéressant pour dépanner. Allez avec ce que vous aimez, cependant.

Bonne chance!

+0

Bons liens.Pour être sûr de comprendre, si NuGet installe prism.unity ou.mef, j'aurai tout ce dont j'ai besoin pour implémenter le framework prism pour un projet donné. J'étais un peu confus en lisant divers endroits qui appelaient différents paquets NuGet avec des fonctionnalités différentes - il y a beaucoup de paquets Prism dans NuGet; cela semblait fragmentaire. >>> En outre, j'ai eu quelques difficultés à lire la documentation. J'ai téléchargé quelques éditeurs de fichiers md différents, mais aucun ne semble montrer les images. Avez-vous un lien suggéré pour un bon lecteur/éditeur .md? – Alan

+0

C'est exact, les paquets avec un IOC incluent tous les autres paquets dont vous avez besoin; vous pouvez commencer à utiliser la bibliothèque sans avoir besoin d'autre chose par la suite. En ce qui concerne la consultation de la documentation, je n'utilise que mon navigateur, rien de spécial. Ce serait bien d'obtenir la documentation en PDF ou quelque chose comme ça. –

+0

Thx. Re documentation, je peux ouvrir les fichiers dans IE/Chrome, mais les images ne montrent pas. Je vois une sorte de référence dans le fichier, mais cela ne provoque pas l'importation de l'image. J'espérais trouver le bon outil pour ouvrir les pages avec les images intégrées. Et oui, je suis d'accord, pdf est beaucoup plus agréable. Le doc v5 est très utile. – Alan

0

Si vous utilisez Prism 5, accédez simplement à view.xaml.cs et implémentez l'interface IView. Comme

public class MainWindow: Window, IView 
{...} 

Avec Prism package NuGet 6 (Prism.Wpf), vous n'avez pas besoin de la mise en œuvre de IView sur votre point de vue

+0

C'est tellement bizarre, parce que c'est exactement ce que le MainWindow.xaml.cs contient déjà, et je ne l'ai pas mis là. – Alan