wpf - 使用 MVVM Light Toolkit 制作可混合应用程序

标签 wpf mvvm expression-blend mvvm-light

前段时间,我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/

相关文章:

wpf - 在 Expression Blend 中执行 WPF 有哪些优势?

wpf - 在 MVVM 架构中应在何处以及如何管理选定的项目?

c# - Blend + Sketchflow 2012 中禁用的设计 View

c# - OxyPlot 热图问题 Windows 8.1 通用应用程序 VS 2015 : Plot won't draw

c# - 不能在 'Binding' 类型的 'Source' 属性上设置 'Binding'

c# - 当我引发事件时,它始终为null

c# - 如何使用 MVVM 在 Xamarin.Forms 中创建动画

c# - 公开可用操作的正确模式

c# - 使用 Silverlight 的 Windows 应用程序

c# - 使用 Windows Phone 在运行时加载 xaml viewmodel