【问题标题】:WPF Prism basic mvvm quickstart project error 'out of the box'WPF Prism 基本 mvvm 快速启动项目错误“开箱即用”
【发布时间】:2016-11-23 21:54:44
【问题描述】:

我从 Microsoft 下载了 prism5.exe 并对其进行了扩展,留下了各种快速启动项目。我只是打开了“库存”BasicMVVMQuickstart_Desktop 解决方案。

起初我收到一个“在命名空间错误中找不到名称”(在下面提到的同一行,顺便说一句),但在关闭并重新打开 Visual Studio 后每个堆栈溢出帖子,我现在收到此错误:

Your views must implement IView

这是 XAML 代码和错误所在的行:

我参考了其他堆栈溢出问题,但仍然无法解决。

一篇文章建议升级到 Prism 6。我执行了 NuGet 中唯一可用的升级,将 Microsoft.Practices.Prism.Mvvvm 更新到 v 1.1.1.0。

我在我的项目中的任何地方都没有看到 Prism.Core,所以我猜这是关于 Visual Studio 和我不太了解的包的一些东西。无论如何,我卸载了 Prism.Core 4.0,然后安装了 Prism.Core 6.2,但由于我在 Visual Studio 的任何地方都看不到 Prism.Core,我不知道是否有任何更改。

所以除了试图了解如何纠正上述错误之外,我还想了解我如何使用 Prism 6 而不是 Prism 5。这让我有点困惑。

【问题讨论】:

    标签: wpf xaml nuget prism-5 prism-6


    【解决方案1】:

    您使用的是旧版本的 Prism。我会(高度)建议从 Prism 团队的最新内容重新开始。您可以从下面的链接中获取。也有很多样品可供选择。文档是最新的,这总是很好。这比尝试升级从 Microsoft 下载的代码要容易得多。该版本与最新版本之间存在大量重大变化。

    Prism Library

    Prism WPF Samples

    您也可以从 NuGet 获得 Prism。获取已包含 IOC 容器的软件包之一,例如 Unity (Prism.Unity) 或 MEF (Prism.Mef)。仅仅获得核心包将有很多不足之处。

    具有 IOC 的包包含启动所需的所有依赖项(Prism.Core、Prism.Wpf 等)。我假设您正在执行 WFP 申请。我使用 Unity 版本,并且我会推荐它而不是 MEF 版本,因为我发现 MEF 是 有趣 来解决问题的。不过,随心所欲。

    祝你好运!

    【讨论】:

    • 良好的链接。为了确保我理解,如果我 NuGet 安装 prism.unity 或 .mef,我将拥有为给定项目实施 prism 框架所需的一切。阅读各种需要具有不同功能的不同 NuGet 包的地方,我有点困惑——NuGet 中有很多 Prism 包;这似乎是零碎的。 >>> 另外,我在阅读文档时遇到了一些困难。我下载了几个不同的 md 文件编辑器,但似乎都没有显示图像。你有一个好的 .md 查看器/编辑器的建议链接吗?
    • 没错,带有IOC的包包括你需要的所有其他包;您可以开始使用该库,之后不需要任何其他东西。至于查看文档,我只是使用我的浏览器,没什么特别的。最好能获得 PDF 或类似的文档。
    • 谢谢。重新文档,我可以在 IE/Chrome 中打开文件,但图像不显示。我在文件中看到了某种引用,但它不会导致图像导入。我希望找到合适的工具来打开带有嵌入图像的页面。是的,我同意,pdf 更好。 v5 文档非常有用。
    • 找到至少一个选项用于查看下载的 prism 6 .md doc 文件和图像;以为我会结束这篇文章。 MarkdownPad.com 有一个可以正常阅读的免费软件版本。完整购买对于获得完整的编辑功能非常经济。在 Win 8 及更高版本中,markdownpad.com/faq.html#livepreview-directx 还提供了所需的升级 SDK。
    • 感谢您的更新。我会检查一下。编程愉快!
    【解决方案2】:

    如果您使用的是 Prism 5,那么只需转到您的 view.xaml.cs 并实现接口 IView。喜欢

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

    使用 Prism 6 (Prism.Wpf) nuget 包,您不需要在视图上实现 IView

    【讨论】:

    • 这太奇怪了,因为这正是 MainWindow.xaml.cs 中已经包含的内容,而我没有放在那里。
    猜你喜欢
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多