MVVM - 在Silverlight和WPF之间共享/重用ViewModel

时间:2011-03-24 22:03:07

标签: wpf silverlight mvvm share reusability

是否可以跨平台共享视图模型 - WPF / Silverlight?我开始把我的VM放在一个单独的程序集中,很快就来到ICommand--然后让我问这个问题?这是可能的,如果这样做有好处吗?我们有可能在将来拥有WPF和Silverlight的客户端应用程序,所以我不想为这两者复制VM。

2 个答案:

答案 0 :(得分:4)

您可以使用Portable Library Tools CTP执行此操作。这允许您在单个库项目中定位完整框架以及Silverlight。

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

答案 1 :(得分:0)

[几乎] Silverlight中可能的任何内容,也可以在WPF中实现。因此,如果您有一个在Silverlight中工作的VM,它[主要]将使用WPF。

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

此外,this question可能有用。