C# MVVM上的松散耦合是可能的吗?

C# MVVM上的松散耦合是可能的吗?,c#,mvvm,C#,Mvvm,我目前正在使用Caliburn.Micro开发我的第一个MVVM应用程序。如果正确理解松耦合的概念,我必须能够提取项目中的每个类,将其隔离在空白解决方案中,并且它必须毫无问题地编译,因为没有对其他类的直接引用,对吗 所以我的问题是: 在哪里可以为不同的视图创建viewmodels并维护松散耦合的模型 我这样问是因为网络上的许多例子都是这样做的: public class ShellViewModel : Conductor<IScreen>.Collection.OneActive

我目前正在使用Caliburn.Micro开发我的第一个MVVM应用程序。如果正确理解松耦合的概念,我必须能够提取项目中的每个类,将其隔离在空白解决方案中,并且它必须毫无问题地编译,因为没有对其他类的直接引用,对吗

所以我的问题是:

在哪里可以为不同的视图创建viewmodels并维护松散耦合的模型

我这样问是因为网络上的许多例子都是这样做的:

public class ShellViewModel : Conductor<IScreen>.Collection.OneActive {  
int count = 1;  

public void OpenTab() {  
    ActivateItem(new TabViewModel {  
        DisplayName = "Tab " + count++  
    });  
}  
}  
class MenuItem
{
    public string Title { get; set; }
    public Type ViewType { get; set; }
}
new MenuItem(){Title="My menu",ViewType=typeof(ProductosViewModel)}
然后像这样使用它:

public class ShellViewModel : Conductor<IScreen>.Collection.OneActive {  
int count = 1;  

public void OpenTab() {  
    ActivateItem(new TabViewModel {  
        DisplayName = "Tab " + count++  
    });  
}  
}  
class MenuItem
{
    public string Title { get; set; }
    public Type ViewType { get; set; }
}
new MenuItem(){Title="My menu",ViewType=typeof(ProductosViewModel)}
并使用一个通用的创建过程,但该类同样与ProductosViewModel耦合

那么我还有什么选择呢?或者我应该忘记严格松散耦合吗?
谢谢大家!

您希望从UI中获得多少用户交互?一般来说,用户界面的交互性越强,它与数据的耦合就越紧密。视图模型可以在很大程度上减少这种紧密耦合,但最终您仍然需要了解一些有关数据的信息。谢谢Robert。根据我使用应用程序的经验,与UI的交互往往会增加,因此我必须至少告诉很多人。