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