Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正确实施MahApp&x27的MVVM;使用MVVM灯光的对话框协调器_C#_Wpf_Mvvm_Mvvm Light_Mahapps.metro - Fatal编程技术网

C# 正确实施MahApp&x27的MVVM;使用MVVM灯光的对话框协调器

C# 正确实施MahApp&x27的MVVM;使用MVVM灯光的对话框协调器,c#,wpf,mvvm,mvvm-light,mahapps.metro,C#,Wpf,Mvvm,Mvvm Light,Mahapps.metro,我目前正在使用MahApps和mvvmlight进行一个项目。 目前,我的解决方案分为: MyProject.Presentation,这是安装了MahApps的WPF应用程序 MyProject.Core,它是一个类库,包含MVVM Light、ViewModels、 MahApps附带了一个DialogCoordinator类和一个IDialogCoordinator接口,该接口将注入位于MyProject.Core的MyViewModels中 但是,为了像这样将IDialogCoord

我目前正在使用
MahApps
mvvmlight
进行一个项目。 目前,我的解决方案分为:

  • MyProject.Presentation
    ,这是安装了
    MahApps
    的WPF应用程序
  • MyProject.Core
    ,它是一个类库,包含
    MVVM Light
    、ViewModels、
MahApps
附带了一个
DialogCoordinator
类和一个
IDialogCoordinator
接口,该接口将注入位于
MyProject.Core的MyViewModels中

但是,为了像这样将
IDialogCoordinator
接口注入我的ViewModels

private readonly IDialogCoordinator _dialogCoordinator;

public MyViewModel(IDialogCoordinator dialogCoordinator)
{
    _dialogCoordinator = dialogCoordinator;
}
。。。我必须在我的
MyProject.Core
项目上安装
MahApps
,我想将其与任何UI相关的东西分开

有没有办法避免这种情况?还是我必须在这一点上妥协?

提前谢谢你

你总是可以用你自己的抽象来抽象掉抽象

也就是说,提供一个类似于IDialogCoordinator的界面,然后在UI中提供一个使用DialogCoordinator与对话框协调的实现


我是我自己的爷爷。

编写自己版本的界面并使用它。在您的UI中,您可以提供一个使用MahApps协调器的实现。@非常感谢,这解决了我的问题。