WPF MVVM:在ViewModel'中应该避免使用WPF名称空间。

时间:2014-05-09 00:17:41

标签: c# wpf

如果我们将解决方案分成三个项目:

查看

视图模型

模型

我们是否应该避免引用任何处理' View'在' ViewModel'完全如System.Windows.Controls或者可以接受使用WPF名称空间System.Windows中的属性,例如{ViewModel'中的Visibility。项目。我担心的是,一旦我在ViewModel'中引用了WPF程序集。对于未来的人来说,在视图模型代码中弹出一个对话框,可以很容易地做一些事情。

1 个答案:

答案 0 :(得分:9)

从ViewModel中完全避免使用WPF名称空间和程序集通常是一个好主意。 ViewModel不应该关心View - 也不应该绑定到特定的View框架。

例如,如果这样做是正确的,那么相同的ViewModel可能适用于WPF作为Windows Phone。如果您引用WPF程序集,则会中断。

在您的情况下,避免引用Visibility的方法是仅使用布尔值,但在XAML中使用IValueConverter来转换bool(或其他ViewModel)和普通框架类型)到您正在使用的所需视图技术(Visibility.Visible等)。