我有3个不同的模型,视图和ViewModel项目以及另一个用于UserControls的项目。在UserControls项目中,我包含了对ViewModel的引用,因此我可以将ViewModels作为DataContext用于我创建的某些UserControl。然后在Views Project中我添加了对UserControls项目的引用。 我在我的一个用户控件中有一个按钮,以便显示一个View,但这是不可能的,因为我没有任何访问Views项目的权限,因为我添加了一个引用,所以我无法实例化它们中的任何一个从Views到UserControls导致循环依赖问题。
现在我需要知道我的这个问题是否有任何解决方案。如果我没有清楚地解释我的情况,请告诉我。
提前致谢。
答案 0 :(得分:1)
你有一个需要解决的设计问题。
我在MVVM项目中通常做的是有一个Main项目,它保存在创建的所有视图中。然后,如有必要,您可以拥有ViewModel和Model项目。 但是创建一个了解您的特定View的UserControl是错误的。你可以做的是将你的UserControl放在你的一个视图中,并绑定到" OnClicked"事件,让事件解决您想要的正确视图。
通常我的ViewModel引用了我的模型,而我的视图引用了我的ViewModels。这样你最终不会得到循环依赖