我有一个页面,基本上你可以选择一组选项(配置),然后进入下一页,在那里你可以做一些事情。
使用MVVM Light工具包,我有一个视图模型绑定到第一页的视图。当用户点击按钮时,它会重定向到另一个视图,也就是第二个页面。
例如:
Page2Command = new DelegateCommand((obj) =>
Messenger.Default.Send<Uri>(new Uri("/DoStuffView.xaml", UriKind.Relative),
Common.CommonResources.GoToDoStuffRequest)) });
问题是,第二个视图的视图模型(在我看来)在构造函数中有几个参数,这些参数基本上是第一页设置的配置所依赖的。
例如:
public DoStuffViewModel(ICollection<Note> availableNotes, SoundMappers soundType)
{
}
问题在于如何使用用户在第一页上动态选择的数据来实例化视图模型?由于这些视图模型没有任何依赖关系,它们只是单独存在(或者可以从数据库、文件或其他地方检索数据,但它们没有任何动态输入数据),因此我无法使用MVVM Light提供的ViewModelLocator模式。我可以通过视图的构造函数来完成它,实例化视图模型,并将新创建的视图模型分配给视图的DataSource,但我认为这样做不太好。有什么建议吗?