如何在OpenFileDialog关闭时更改视图?

时间:2014-01-30 22:14:49

标签: c# wpf mvvm openfiledialog

这是我的第一个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();
            }
        }
    }

1 个答案:

答案 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;
        }
    }