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(); }
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); }