2011-03-24 67 views
5

是否可以在不同平台之间共享视图模型 - WPF/Silverlight?我开始把我的虚拟机放在一个单独的程序集中,然后很快来到了ICommand--这导致我问这个问题?这是可能的,如果是的话,这样做有好处吗?我们将来有可能为WPF和Silverlight提供客户端应用程序,所以我不想为两者都复制VM。MVVM - 在Silverlight和WPF之间共享/重用ViewModels

回答

4

您可以使用Portable Library Tools CTP执行此操作。这使您可以将单个库项目中的完整框架和Silverlight作为目标。

否则,这是可能的,排序。您仍然需要两个单独的项目(出于实际目的),但通常可以使用单个源文件。让每个项目使用相同的源文件保持重用 - 但需要手动同步文件。在这种情况下,您还可以通过部分类或定义轻松地添加特定于平台的功能,这有助于保持对缺少Silverlight功能易于维护的一些解决方法。

+0

我认为便携式图书馆选项将是您最好的选择,但它会迫使您编码到最低公分母。真的,对于ViewModels来说,这不应该成为一个问题,因为您应该将任何视图相关的特性抽象到视图和任何平台特性到服务层。 – 2011-03-25 14:25:30

0

[几乎]在Silverlight中可能的东西,在WPF中也是可以的。所以,如果你有一个虚拟机在Silverlight中工作,它将[主要]与WPF一起工作。

从另一个角度来看,WPF提供了更丰富的可能性,因此您可能希望在您的WPF代码部分使用它们。您可以使用通常的#ifdef Silverlight类似的技巧。

此外,this question可能会有用。

相关问题