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

问题描述 投票:-1回答:1

我正在处理的软件有一个Mainwindow,其中有几个按钮可以打开新窗口。每个都应该有一个ViewModel

MainWindowViewModel中,软件会创建一些数据,例如ProListsummariesData。主窗口中打开一个新窗口的按钮之一是“显示栏”按钮。在MainWindowViewModel中,我将显示条形按钮与ICommand连接到实例化新窗口的方法。我使用代码隐藏的显示栏按钮打开新窗口。

Dim wndSummariesObject = New WndSummaries
wndSummariesObject.Show()

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

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

它显示构造函数将数据传输到ShowBarsViewModel,但问题是当我单击Show bar按钮中的一个按钮来操作它的任务时,我丢失了所有变量的值,这些值在MainWindowViewModel之前被实例化和传输!

我在哪里弄错了?

-------更新

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

wpf vb.net mvvm viewmodel
1个回答
0
投票

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

<Window.Resources>
     <ViewModels:WndSummariesViewModel x:Key="WndSummariesVM"/>
     <viewModels:ProViewModel x:Key="ProViewModel" />
</Window.Resources>
© www.soinside.com 2019 - 2024. All rights reserved.