0

我从 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。这让我有点困惑。

4

2 回答 2

1

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

棱镜库

棱镜 WPF 示例

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

带有 IOC 的包包含启动所需的所有依赖项(Prism.Core、Prism.Wpf 等)。我假设您正在执行 WFP 申请。我使用 Unity 版本,并且我会建议使用 MEF 版本,因为我发现 MEF 的故障排除很有趣。不过,随心所欲。

祝你好运!

于 2016-11-25T13:42:55.903 回答
0

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

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

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

于 2016-11-23T23:02:10.763 回答