1

我们能不能有一个 App.Xaml 的 viewModel,这样我们就可以在 startUp 上做一些逻辑推导,也可以形成一个应用程序的起点......

4

2 回答 2

2

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

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

例如,

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();
}
于 2011-10-04T14:24:36.070 回答
0

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

于 2011-10-04T13:11:36.587 回答