Модель представления для App.Xaml - PullRequest
1 голос
/ 04 октября 2011

Можем ли мы иметь viewModel для App.Xaml, чтобы мы могли делать некоторые логические выводы при запуске, а также формировать начальную точку приложения ...

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Нет, App.xaml - это не класс Window, это класс вашего приложения.

Вы все еще можете переписать метод OnStartup(), чтобы обработать свою собственную пользовательскую логику и запустить специфичные для View / 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();
}
0 голосов
/ 04 октября 2011

Нет, у нас не может быть моделей просмотра на уровне приложения. Как предположил @BoltClock, это не то, что имеет контекст данных, с которым мы связываем экземпляр любого класса. MVVM не работает с App.

...