Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 使用MVVM Light Toolkit创建可混合的应用程序_Wpf_Mvvm_Expression Blend_Mvvm Light - Fatal编程技术网

Wpf 使用MVVM Light Toolkit创建可混合的应用程序

Wpf 使用MVVM Light Toolkit创建可混合的应用程序,wpf,mvvm,expression-blend,mvvm-light,Wpf,Mvvm,Expression Blend,Mvvm Light,不久前,我考虑在混合编写的GUI和VisualStudio编写的GUI之间切换。通过将我的混合项目添加到我的VS2008项目中,然后更改启动应用程序并重新编译,我使它正常工作。这将导致两个应用程序具有完全不同的GUI,但使用完全相同的ViewModel和模型代码。我对此很满意 现在,我已经了解了Laurent Bugnon的MVVM Light Toolkit,我真的想利用他的努力使为同一后端代码支持多个GUI的过程成为可能。问题是,工具包是否有助于实现这一点,或者我是否被困在以前的方式中 我在

不久前,我考虑在混合编写的GUI和VisualStudio编写的GUI之间切换。通过将我的混合项目添加到我的VS2008项目中,然后更改启动应用程序并重新编译,我使它正常工作。这将导致两个应用程序具有完全不同的GUI,但使用完全相同的ViewModel和模型代码。我对此很满意

现在,我已经了解了Laurent Bugnon的MVVM Light Toolkit,我真的想利用他的努力使为同一后端代码支持多个GUI的过程成为可能。问题是,工具包是否有助于实现这一点,或者我是否被困在以前的方式中

我在MIX10上看了他的视频,并在网上读了一些关于他的文章。然而,我还没有看到一些东西表明有一种干净的方法允许用户通过加载不同的DLL动态切换GUI。VS2008和Blend 3都有MVVM模板,但我是否应该为我的应用程序创建这两种类型的项目,然后引用VS2008解决方案中的特定文件

更新 我重新阅读了Laurent网站上的一些信息,似乎忘记了模板的全部要点是允许在VS2008Blend中打开相同的解决方案。不管怎样,从这个新的角度来看,模板实际上是要使用一个GUI,很可能是完全混合设计的(通过VS2008调试很方便),然后能够使用两个不同的ViewModel——一个用于设计时,一个用于运行时


因此,在我看来,我的问题的答案是,我想结合使用我以前的解决方案,以及MVVM Light Toolkit。前者允许我围绕我的核心代码创建多个不同的GUI,而后者将通过使用设计时ViewModel更容易地在混合中设计精美的GUI。有人能对此发表评论吗?

我认为这将是一个很好的候选人。它很简单,您可以将它与其他框架结合起来。

我检查了您的上一个问题和这个问题,我从未真正听说过将项目切换到Blend和Studio中,最终得到两个不同的UI。我认为这不是微软在构建Blend时的意图。相反,在这两个IDE中打开完全相同的项目和代码文件的可能性(以及我与MSFT的各个团队进行的所有讨论)暗示,实际上的意图是只有一个可以在两种环境中编辑的应用程序

我认为最终的目标是拥有多种工具,可以用来编辑UI-XAML、Visual Studio designer和Blend。根据您在项目中的角色(开发人员、设计师、集成人员)以及您使用工具的能力,您可以选择其中一种

这并不意味着我们永远不会切换模板!根据应用程序的类型(例如SL4桌面应用程序或WinPhone7应用程序之间),我们使用相同的ViewModel(及以下)代码,但在文件上使用完全不同的UI。我在这段视频中演示了如何做到这一点:

这与我在MIX上的演讲相同,但延长了15分钟,我展示了如何重用ViewModel和model文件,但对WinPhone7使用了完全不同的UI

另一个应用程序是在调整窗口大小时切换模板(通常在WPF中使用,但也适用于Silverlight),以显示较少的细节或不同屏幕大小的不同布局

我希望这个回复不会让你感到困惑:)事实上,在我们继续讨论之前,我很想听听你对这个问题的评论

干杯,
Laurent

谢谢,但我真的很想坚持使用MVVM Light Toolkit,因为我已经在我的应用程序中使用了MEF,而且我还计划使用Laurent Toolkit中的RelayCommand和Messenger。嗨,Laurent,感谢您的回复!你的第一段证实了我的认识,所以这很好。这完全是有道理的,我认为能够在两个应用程序中打开解决方案并使其工作非常好。在使用工具箱和模板之前,我会遇到设计时异常,或者没有代表性的GUI。我正在下载你的演讲稿,谢谢你的发帖。你们所说的和我想要实现的最接近,但我不打算针对不同的平台。我会在看了视频后再写更多内容。:)Laurent,这是一个比你的MIX10视频更全面的视频Windows Phone的最后一部分内容非常丰富。基本上,我认为这与我以前尝试为同一代码支持多个GUI时所做的相同。您创建了一个电话项目并添加了到源代码的链接,而我创建了另一个WPF项目,但随后添加了对原始WPF应用程序使用的库的引用。我想我现在走对了方向。再次感谢您的投入!我正在尽最大努力说服微软给我们75分钟的MIX;)我喜欢75分钟的形式,而不是60分钟的问答形式。干杯,劳伦特