我在我的项目中使用MVVM,这是我的问题。我有一个View和相应的视图模型,带有服务引用。此视图包含UserControl,它具有另一个UserControl,它还包含嵌套的UserControl。 Last UserControl有一个创建弹出窗口的方法。在这个弹出窗口中,我需要来自视图模型的服务引用。每个用户控件都有自己的DataContext。
代码说明。
查看xaml:
<UserControl DataContext="{Binding ViewModel}">
<FunctionsList/>
</UserControl>
FunctionsList xaml:
<UserControl>
<Function1/>
<Function2/>
<Function3/>
<Function4/>
</UserControl>
Function3 xaml:
<UserControl/>
后面的Function3代码包含CreatePopup方法,该方法使用UserControl
Function3Popup作为内容创建对话框。而Function3Popup应该有服务参考。
这里的最佳做法是什么?我有一个糟糕的解决方案,使用绑定传递引用,但它似乎让我感到沮丧。
答案 0 :(得分:0)
好吧,毕竟我已经使用自己的ViewModel实现了弹出窗口,并使用嵌套子控件中的命令绑定从父控件中解析了它。我认为这是最好的解决方案。