单击从第一个 window 的视图模型打开的第二个 window 后,变量值变为空

Variable values become null after clicking on second window opened from first window's view model

我正在使用的软件有一个 Mainwindow,其中有几个按钮可以打开新的 windows。其中每一个都应该有一个 ViewModel

MainWindowViewModel 中,软件会创建一些数据,例如 ProListsummariesData。主 window 中打开新 window 的按钮之一是 "Show Bars" 按钮。在 MainWindowViewModel 中,我将带有 ICommand 的 Show bars 按钮连接到实例化新 window 的方法。我使用代码隐藏显示栏按钮打开新的 window.

Dim wndSummariesObject = New WndSummaries
wndSummariesObject.Show()

在相同的方法中,我实例化 ShowbarsViewModel 以传递它需要使用的数据。

WndSummariesViewModelObject = new WndSummariesViewModel(_ProfileList, 
    SummariesWndData) With {
        .ProfileList = ProList,
        .SummariesWndData = SummariesData
    }

它表明构造函数将数据传输到 ShowBarsViewModel,但问题是当我单击显示栏按钮中的一个按钮来操作其任务时,我丢失了所有变量的值之前从 MainWindowViewModel!

我哪里出错了?

--------更新

当我想将第一个 ViewModel 的实例作为第二个 ViewModel 的构造函数的参数发送时,它具有相同的行为(Making null)。

问题是我在 Xaml 中设置了 ViewModels 的一个实例。尽管我在构造函数中设置了参数,但第二个 ViewModel 错误地使用了在 Xaml 中创建的那个。

<Window.Resources>
     <ViewModels:WndSummariesViewModel x:Key="WndSummariesVM"/>
     <viewModels:ProViewModel x:Key="ProViewModel" />
</Window.Resources>