使用MVVM Light实现MahApp的DialogCoordinator的正确MVVM实现

时间:2018-03-26 14:33:52

标签: c# wpf mvvm mvvm-light mahapps.metro

我目前正在使用MahAppsMVVM Light开展项目。 目前,我的解决方案分为:

  • MyProject.Presentation,这是安装了MahApps的WPF应用
  • MyProject.Core,这是一个包含MVVM Light,ViewModels,...的类库。

MahApps附带DialogCoordinator类和IDialogCoordinator接口,可以注入位于MyProject.Core的ViewModel。

但是,为了将IDialogCoordinator接口注入到我的ViewModel中,......,

private readonly IDialogCoordinator _dialogCoordinator;

public MyViewModel(IDialogCoordinator dialogCoordinator)
{
    _dialogCoordinator = dialogCoordinator;
}

...我必须在MahApps项目中安装MyProject.Core,我希望将其与任何与UI相关的内容分开。

有没有办法避免这种情况?或者我必须妥协吗?
提前谢谢!

1 个答案:

答案 0 :(得分:2)

您总是可以使用自己的抽象抽象出抽象。

也就是说,提供类似于IDialogCoordinator的接口,然后在您的UI中,您可以提供一个使用DialogCoordinator与对话框协调的实现。

我是我自己的爷爷。