如何在不同项目中的视图/视图模型之间导航

本文关键字:视图 模型 之间 导航 项目 | 更新日期: 2023-09-27 17:58:47

我有三个不同的Models、Views和ViewModels项目,还有一个UserControls项目。在项目UserControls中,我包含了对ViewModels的引用,这样我就可以将ViewModels作为我创建的某些UserControls的DataContext。然后在视图项目中,我添加了对UserControls项目的引用。我在一个用户控件中有一个按钮来显示视图,但这是不可能的,因为我没有任何对视图项目的访问权限,并且我无法实例化其中的任何一个,因为添加从视图到UserControls的引用会导致循环依赖性问题。

现在我想知道我的这个问题是否有任何解决方案。如果我没有很清楚地解释我的情况,请告诉我。

提前谢谢。

如何在不同项目中的视图/视图模型之间导航

您有一个需要解决的设计问题。

我通常在MVVM项目中做的是有一个Main项目,它包含所有创建的视图。然后,如果需要,您可以拥有ViewModel和Model项目。但是,创建一个了解特定视图的UserControl是错误的。你可以做的是将你的UserControl放在你的一个视图中,并绑定到"OnClicked"事件,让该事件解析你想要的正确视图。

通常我的ViewModel引用我的Model,而Views引用我的ViewModels。这样就不会导致循环依赖