我一直在处理简单的 MVVM 模式,并且从那以后更深入地研究了 WPF 中数据绑定的全部功能。我遇到了一个问题,我似乎无法解决问题。以下面的 MainWindowViewModel 代码作为初学者:
ObservableCollection<DataRecord> _SomeData = new ObservableCollection<DataRecord>();
public ObservableCollection<DataRecord> SomeData
{
get
{
return _SomeData;
}
set
{
_SomeData = value;
}
}
public MainWindowViewModel()
{
CurrentViewModel.Add(new RandomViewModel(SomeData));
}
我没有粘贴完整的代码,而是将 ListBox 绑定到 ViewModelBase 的 ObservableCollection<>,并引用添加的每个基的 Image 属性(图像导航)。现在!对于问题:
我使用 DataTemplate 从 ViewModel 引用视图,使用从 ListBox.SelectedItem 返回的字符串。因为 RandomViewModel 需要传递一个参数,所以每当我单击 ListBox.SelectedItem 时,都会实例化一个新视图,而不是在 ListBox 中创建的视图。发生这种情况的原因很简单,新视图需要一个 RandomViewModel 来引用数据绑定。所以!使用臭名昭著的 ListBox.SelectedItem 进行 ViewModel/View Navigation,我应该如何创建 View,并且仍然引用它的 ViewModel,即使 ViewModel 需要传递参数?或者!我应该如何使用已经实例化的 ViewModel 并将其用作对新创建的 View 的引用?