单击从第一个 window 的视图模型打开的第二个 window 后,变量值变为空
Variable values become null after clicking on second window opened from first window's view model
我正在使用的软件有一个 Mainwindow
,其中有几个按钮可以打开新的 windows。其中每一个都应该有一个 ViewModel
。
在 MainWindowViewModel
中,软件会创建一些数据,例如 ProList
和 summariesData
。主 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>
我正在使用的软件有一个 Mainwindow
,其中有几个按钮可以打开新的 windows。其中每一个都应该有一个 ViewModel
。
在 MainWindowViewModel
中,软件会创建一些数据,例如 ProList
和 summariesData
。主 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>