Beispiel #1
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // Um etwas bessere Übersicht zu haben, initialisieren
            // wir die Services in einer Helper-Methode:
            ConfigureServices();

            // dem AppVm müssen wir nun die erzeugte Service-Instanz
            // injiziieren:
            AppVm = new AsciiGeneratorVm(DialogService);


            MainWindow             = new MainWindow();
            MainWindow.DataContext = AppVm;
            MainWindow.Show();
        }
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            AppVm = new AsciiGeneratorVm();
            // hier fügen wir per Dependency Injection die konkreten Implementierungen
            // des ChooseFile-Dialogs (bereits vorimplementiert in Projektvorlage)
            // und einer Message Box zur Anzeige eines Fehler ein
            AppVm.OnChooseFile = PlatformSupport.ChooseFile;
            AppVm.OnShowError  = PlatformSupport.ShowError;
            // Das ViewModel bietet hier als Erweiterungspunkt aus Bequemlichkeit einzelne Methoden an
            // In der Praxis werden es eher ganze Interfaces sein und wir würden pro Plattform eine
            // Klasse mit einer konkreten Implementierung des Interfaces erstellen, hier instanziieren
            // und dann zuweisen

            MainWindow             = new MainWindow();
            MainWindow.DataContext = AppVm;
            MainWindow.Show();
        }
Beispiel #3
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            AppVm = new AsciiGeneratorVm();

            // hier fügen wir per Dependency Injection die konkreten Implementierungen
            // des ChooseFile-Dialogs (bereits vorimplementiert in Projektvorlage)
            // und einer Message Box zur Anzeige eines Fehler ein
            AppVm.OnChooseFile = PlatformSupport.ChooseFile;
            AppVm.OnShowError  = PlatformSupport.ShowError;
            // In den Übungen diese Woche werden wir das noch umbauen,
            // so dass hier "echte" Dependency Injection zum Tragen kommt


            MainWindow             = new MainWindow();
            MainWindow.DataContext = AppVm;
            MainWindow.Show();
        }
        public void MissingFilenameGivesAnErrorMessage()
        {
            // 1. Arrange
            var dialogService = new MockDialogService();
            var vm            = new AsciiGeneratorVm(dialogService);

            // 2. Act
            var messageCountBefore = dialogService.Errors.Count;

            vm.CalcCommand.Execute(null);
            var messageCountAfter = dialogService.Errors.Count;

            // Spasseshalber geben wir die Error (s)Message noch aus
            DumpErrorMessages(dialogService.Errors);

            // 3. Assert
            Assert.AreEqual(messageCountBefore + 1, messageCountAfter);
            Assert.IsNull(vm.Result);
        }