C# 将值从一个viewmodel传递到子viewmodel

C# 将值从一个viewmodel传递到子viewmodel,c#,wpf,mvvm,C#,Wpf,Mvvm,我使用的是.NETFW4.5,VS2013和SQLITE。我有一个包含选项卡项的主窗口。每个选项卡项都有自己的视图,每个视图都有自己的VM。我正在主窗口上运行一个查询,将数据返回到datagrid。根据选择的SelectedItem,我需要查询将相关子数据返回到包含我的视图/视图模型的选项卡。。。如何让我的主VM将值传递给我的子VM。。。我试过FindVisualParent,但不起作用。我认为它在加载所有内容后加载了我的值,因此没有在我的子VM查询上应用我的文件管理器。。。希望这是有意义的 最

我使用的是.NETFW4.5,VS2013和SQLITE。我有一个包含选项卡项的主窗口。每个选项卡项都有自己的视图,每个视图都有自己的VM。我正在主窗口上运行一个查询,将数据返回到datagrid。根据选择的SelectedItem,我需要查询将相关子数据返回到包含我的视图/视图模型的选项卡。。。如何让我的主VM将值传递给我的子VM。。。我试过FindVisualParent,但不起作用。我认为它在加载所有内容后加载了我的值,因此没有在我的子VM查询上应用我的文件管理器。。。希望这是有意义的

最好的方法适用于MVVM将不胜感激。
在没有看到任何代码的情况下,我的最佳猜测是您自己的视图实例化了各自的视图模型。这就解释了为什么要使用FindVisualParent来获取其他视图模型。尝试让主视图模型实例化子视图模型。

如前所述,视图的视图模型应实例化每个子视图模型,并将对它们的引用作为属性保存。然后可以将选项卡的数据上下文指定给主windows视图模型中的视图模型属性


这让你的父视图模型在你的子视图模型中登记更改通知,并给你更多的控制它们如何交互。

你是否考虑在主视图模型中引发事件并在子视图模型中拥有事件处理程序?一点点显示如何将事物连线起来的代码会有帮助。