就在最近,我了解了使用 MVVM 将 GUI 与底层模型分离。我最终尽可能多地学习将我当前的应用程序转换为 MVVM,并且在很大程度上取得了成功。现在我需要弄清楚如何实际使用在 Blend 中生成的 GUI 并使用它来代替我在 Visual Studio 中设计的当前 GUI。我在网上找不到任何资源来尽可能地无缝。我想知道你们都做了什么,并为你们工作过。
我的最终解决方案是允许我在运行时从菜单中选择一个皮肤,并立即将 GUI 从当前的一个更改为用户选择的另一个。 谁能指出我解释如何做到这一点的帖子?
我目前的目标没有那么雄心勃勃——我希望能够将我的新 Blend GUI 添加到我的 Visual Studio 项目中,并且在我编译时,让新的 Blend GUI 出现。如果我想回到旧的 GUI,我将不得不重新编译。目前,没关系。
我已将 Blend 项目添加到我的 VS2008 解决方案中,并将其设置为启动应用程序。这很好——如果我运行应用程序,我的新 GUI 会出现而不是旧的。现在的问题是它需要实际上位于不同文件夹中的 DLL——原始启动应用程序的 bin\Debug 文件夹。 我是否应该将我的原始 GUI 作为启动应用程序,然后让它的应用程序代码隐藏加载另一个 GUI?
此外,每个相应的 GUI 都需要对 ViewModel 的引用。就我而言,我只是在我当前的 GUI 类中实例化它。对于 Blend GUI,我也在那里实例化了一个,因为只有一个 GUI 将处于活动状态。 这是应该使用 Unity 框架之类的地方吗?
很抱歉所有可能不连贯的问题,但我不太确定我应该如何从这里开始。我觉得我已经非常接近向自己证明,从 GUI 的角度来看,MVVM 是可行的方法(我已经在可测试性位上出售了)。