我正在使用Caliburn.Micro开发我的第一个MVVM应用程序。如果正确理解Loosely Coupled的概念,我必须能够提取我的项目的每个类,将它隔离在一个空白的解决方案上,它必须编译没有问题,因为没有直接引用其他类,对吧?
所以我的问题是:
为不同的视图创建视图模型并保留松散耦合模型的位置在哪里?
我问这个是因为网上的很多例子都是这样的:
public class ShellViewModel : Conductor<IScreen>.Collection.OneActive {
int count = 1;
public void OpenTab() {
ActivateItem(new TabViewModel {
DisplayName = "Tab " + count++
});
}
}
TabViewModel是所需视图的viewmodel。但是在这里,shellviewmodel与TabViewModel紧密耦合
我尝试的其他选项是创建某种类似的菜单类:
class MenuItem
{
public string Title { get; set; }
public Type ViewType { get; set; }
}
并像这样使用它:
new MenuItem(){Title="My menu",ViewType=typeof(ProductosViewModel)}
并使用通用创建过程,但此类再次与ProductosViewModel结合。
那么我还有其他选择吗?或者我应该忘记严格的松散耦合? 谢谢!