这是我的第一个MVVM应用程序,我想知道在用户完成OpenFileDialog
之后如何切换到另一个视图。
目前使用的不断变化的视图技术来自here。
换句话说,如何打电话:
private void ExecuteGridViewCommand()
{
CurrentViewModel = MainViewModel._gridViewModel;
}
问题出现了,因为我无法跟踪用户何时单击Dialog的Open按钮,因为Dialog不是XAML控件。
private static ViewModelBase _currentViewModel;
public ViewModelBase CurrentViewModel
{
get { return _currentViewModel; }
set
{
if (_currentViewModel != value)
{
_currentViewModel = value;
OnPropertyChanged();
}
}
}
答案 0 :(得分:0)
有人之前发送了一个鼓舞人心的答案(已删除)(感谢),即使它没有开箱即用,可能是因为实例化了ViewModelLocator()的新实例。
这是这样的:
private readonly MainViewModel _mainViewModel = (new ViewModelLocator().Main);
_mainViewModel.ExcuteGridView();
经过调整,现在我有了这个,并且它有效:
ViewModelLocator.Main.ExcuteGridView();
为了使其工作,我必须在ViewModelLocator中声明Main为static:
public static MainViewModel Main
{
get
{
return _main;
}
}