我们是否可以为app. xaml创建一个viewModel,这样我们就可以在startUp上进行一些逻辑推理,并形成一个app的起点…
不,App.xaml不是一个Window类,它是你的Application类。
你仍然可以覆盖它的OnStartup()
方法来处理你自己的自定义逻辑,并启动特定的视图/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();
}
不,我们不能在应用程序级别有视图模型。正如@BoltClock所建议的那样,它不是具有数据上下文的东西,我们可以将任何类的实例绑定到它。MVVM不支持App