App.Xaml的视图模型

时间:2011-10-04 11:35:51

标签: wpf mvvm app.xaml

我们可以为App.Xaml创建一个viewModel,这样我们就可以在startUp上做一些逻辑演绎,并形成app的起点......

2 个答案:

答案 0 :(得分:2)

不,App.xaml不是Window类,它是您的Application类。

您仍然可以覆盖它的OnStartup()方法来处理您自己的自定义逻辑并启动特定的Views / ViewModel。

例如,

protected override void OnStartup(StartupEventArgs e)
{
    base.OnStartup(e);

    var login = new LoginDialog();
    var loginVm = new LoginViewModel();

    login.DataContext = loginVm;
    login.ShowDialog();

    if (!login.DialogResult.GetValueOrDefault())
    {
        Environment.Exit(0);
    }

    // Providing we have a successful login, startup application
    var app = new ShellView();
    var context = new ShellViewModel(loginVm.CurrentUser);
    app.DataContext = context;
    app.Show();
}

答案 1 :(得分:0)

不,我们无法在应用级别拥有视图模型。正如@BoltClock所建议的那样,它不具有我们绑定任何类的实例的数据上下文。 MVVM不适用于App