WPF Prism 基础 mvvm quickstart 项目错误 'out of the box'

WPF Prism basic mvvm quickstart project error 'out of the box'

我从微软下载了 prism5.exe 并展开它,留下了各种快速启动项目。我干脆打开了'stock'BasicMVVMQuickstart_Desktop解决方案

起初我收到“无法在名称空间错误中找到名称”(在同一行,如下所述,顺便说一句),但在关闭并重新打开后 Visual Studio 每个堆栈溢出 post,我现在收到此错误:

Your views must implement IView

这是 XAML 代码和有错误的行:

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

一个 post 建议升级到 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。这让我有点困惑。

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

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

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

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

Prism Library

Prism WPF Samples

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

具有 IOC 的包包含开始所需的所有依赖项(Prism.Core、Prism.Wpf 等)。我假设您正在执行 WFP 应用程序。我使用 Unity 版本,我会推荐 MEF 版本,因为我发现 MEF 有趣 用于故障排除。不过,随心所欲。

祝你好运!