从ViewModel调用app.xaml.cs中的方法

Gau*_*rav 0 silverlight mvvm

我有一些用三个ViewModel编写的通用代码,应该重构.我已经在app.xaml.cs中的方法中移动了代码.这是一种正确的方法吗?现在我必须从ViewModels调用这个方法,我应该引发一个自定义事件(来自所有ViewModels)并在app.xaml.cs上处理它吗?如果是,这意味着我必须在app.xaml.cs页面上创建ViewModel的引用(我们使用的是Unity).这看起来是对的吗?我是MVVM的新手,还有其他任何建议吗?

任何帮助将不胜感激.

slu*_*ter 5

你还没有提到代码是什么.为什么它在App.xaml.cs文件中?
您需要从三个不同的ViewModel调用它的事实表明您应该将其重构为:

  • 一个静态助手类型
  • ViewModelss继承的基类

ViewModel的工作是保存和整形(或转换)准备显示的数据,但它不应该知道显示.它也不应该知道App.xaml.cs的内容,特别是因为您的ViewModel最终可能与App.xaml文件完全不同的模块或程序集.