我一直在处理简单的MVVM模式,并从此更多地深入了解WPF数据绑定的全部功能。我遇到了一个问题,我似乎无法将我的头围绕。采取以下MainWindowViewModel代码起动器:WPF MVVM多视图问题,使用ListBox.SelectedItem
ObservableCollection<DataRecord> _SomeData = new ObservableCollection<DataRecord>();
public ObservableCollection<DataRecord> SomeData
{
get
{
return _SomeData;
}
set
{
_SomeData = value;
}
}
public MainWindowViewModel()
{
CurrentViewModel.Add(new RandomViewModel(SomeData));
}
相反粘贴的代码的全部长度,我已绑定列表框来ViewModelBase的一个ObservableCollection <>,参照每个碱基添加(图像导航)的图像属性。现在!对于问题:
我正在使用DataTemplate从ViewModel引用视图,使用从ListBox.SelectedItem返回的字符串。因为RandomViewModel需要传递参数,所以无论何时单击ListBox.SelectedItem,都会实例化一个新的View,而不是在ListBox中创建的View。这种情况发生的原因很简单,新的View需要一个RandomViewModel来引用数据绑定。所以!对于ViewModel/View Navigation使用臭名昭着的ListBox.SelectedItem,即使ViewModel需要传递参数,我该如何创建View并仍然引用其ViewModel?要么!我该如何使用已经实例化的ViewModel并将其用作新创建的View的引用?
我真的不明白你有什么。 – MBen
我以为这个问题有足够的重量,我猜不是!你错过了什么可以帮助回答这个问题? – user1280092