前段时间,我posted a question关于在 Blend 创作的 GUI 和 Visual Studio 创作的 GUI 之间切换。通过将我的 Blend 项目添加到我的 VS2008 项目中,然后更改启动应用程序并重新编译,我让它正常工作。这将导致两个应用程序具有完全不同的 GUI,但使用完全相同的 ViewModel 和 Model 代码。我对此很满意。
既然我已经了解了 Laurent Bugnion 的 MVVM Light Toolkit,我真的很想利用他的努力来使支持同一后端代码的多个 GUI 的过程成为可能。问题是,工具包是否促进了这一点,还是我坚持以前的方式?
我在 MIX10 上看过他的视频,并在网上阅读了一些关于它的文章。但是,我还没有看到表明有一种干净的方法可以让用户通过加载不同的 DLL 来动态切换 GUI。 VS2008 和 Blend 3 有 MVVM 模板,但我是否应该为我的应用程序创建这两种类型的项目,然后从我的 VS2008 解决方案中引用特定文件?
更新
我重新阅读了 Laurent 网站上的一些信息,似乎忘记了模板的全部意义在于允许 相同 VS2008要打开的解决方案和 混合。所以无论如何,有了这个新的视角,模板看起来实际上是打算使用一个单一的 GUI,很可能完全在 Blend 中设计(通过 VS2008 方便调试),然后能够使用两个不同的 ViewModel——一个用于设计时,一个用于运行时。
所以在我看来,我的问题的答案是我想结合使用我以前的解决方案以及 MVVM Light Toolkit。前者将允许我围绕我的核心代码制作多个不同的 GUI,而后者将使用设计时 ViewModel 使在 Blend 中设计精美的 GUI 变得更容易。任何人都可以对此发表评论吗?
最佳答案
我检查了你的上一个问题和这个问题,我从未真正听说过将项目切换到 Blend 和 Studio 中工作,并最终得到两个不同的 UI。我认为这不是 MSFT 在构建 Blend 时的意图。相反,在两个 IDE 中打开完全相同的项目和代码文件的可能性(以及我与 MSFT 的各个团队进行的所有讨论)暗示,事实上,意图是只有一个可以在两种环境中编辑的应用程序。
我认为最终的目标是拥有各种可用于编辑 UI 的工具——XAML、Visual Studio 设计器、Blend。根据您在项目中的角色(开发人员、设计师、集成商)以及您使用工具的能力,您可以选择其中一种。
这并不意味着我们从不切换模板!根据应用程序的类型(例如,在 SL4 桌面应用程序或 WinPhone7 应用程序之间),我们使用相同的 ViewModel(及以下)代码,但在文件上完全使用不同的 UI。我在这个视频中演示了如何做到这一点:
http://channel9.msdn.com/posts/kreekman/TechDays-2010-Understanding-the-Model-View-ViewModel-pattern/
这与我在 MIX 上的演讲相同,但延长了 15 分钟,我展示了如何重用 ViewModel 和模型文件,但为 WinPhone7 使用完全不同的 UI。
另一个应用程序是在调整窗口大小时切换模板(在 WPF 中经常使用,但也适用于 Silverlight),以便为不同的屏幕尺寸显示更少的细节或不同的布局。
我希望这个回复不会让您感到困惑 :) 事实上,在我们继续讨论之前,我很想听听您对此的评论。
干杯,
洛朗
关于wpf - 使用 MVVM Light Toolkit 制作可混合应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2899312/