Hallo zusammen,
ich versuche mich gerade an den Services im MVVM Pattern. (Code ist von @Nofear23m , ich habe ihn nur übsersetzt nach C#)
Den MessageBoxService habe ich schon hinbekommen und der funktioniert auch.
Allerdings habe ich ein Problem beim DialogWindowService.
Ich habe das Interface IDialogWindowService:
Die Klasse die das Interface Implementiert:
Spoiler anzeigen
bei folgendem Aufruf bekomme ich dann eine Exception die ich nicht verstehe und ich keine Ahnung habe wo ich überhaupt suchen soll.
Exception:
Markiert wird folgende Zeile:
Ich habe auch schon
probiert.
Aber auch da kommt der gleiche Fehler.
Kann mir da jemand sagen was ich falsch übersetzt habe und was die Fehlermeldung genau bedeutet?
Edit: Noch ein TestProjekt angehangen!
ich versuche mich gerade an den Services im MVVM Pattern. (Code ist von @Nofear23m , ich habe ihn nur übsersetzt nach C#)
Den MessageBoxService habe ich schon hinbekommen und der funktioniert auch.
Allerdings habe ich ein Problem beim DialogWindowService.
Ich habe das Interface IDialogWindowService:
Die Klasse die das Interface Implementiert:
C#-Quellcode
- public class DialogWindowService : IDialogWindowService
- {
- private DialogWindow _currentDialogWindow;
- public bool ShowModalDialog(string windowName, object dataContext, object owner, bool topMost = false, bool showInTaskbar = true)
- {
- DialogWindow dialogwindow = new DialogWindow(windowName, dataContext, System.Windows.SizeToContent.WidthAndHeight, System.Windows.WindowStartupLocation.CenterOwner);
- _currentDialogWindow = dialogwindow;
- dialogwindow.Topmost = topMost;
- dialogwindow.ShowInTaskbar = showInTaskbar;
- dialogwindow.Owner = dialogwindow.FindOwnerWindow(owner);
- dialogwindow.AsDialogWindowModalDialog = true;
- return (bool)Application.Current.Dispatcher.Invoke(() => dialogwindow.ShowDialog);
- //return System.Convert.ToBoolean(Application.Current.Dispatcher.Invoke(() => dialogwindow.ShowDialog));
- }
- public void CloseDialog()
- {
- if (_currentDialogWindow != null)
- {
- _currentDialogWindow.Close();
- }
- }
- public void CloseDialog(object vm)
- {
- Window owner = Application.Current.Windows.Cast<Window>().SingleOrDefault(x => x.DataContext != null && x.DataContext.GetType() == vm.GetType());
- if (owner == null)
- {
- foreach (Window window in (from Window win in Application.Current.Windows
- select win).ToList())
- {
- if (window.DataContext.GetType() == vm.GetType())
- window.Close();
- }
- }
- else
- owner.Close();
- }
- }
bei folgendem Aufruf bekomme ich dann eine Exception die ich nicht verstehe und ich keine Ahnung habe wo ich überhaupt suchen soll.
Exception:
System.InvalidCastException: "Unable to cast object of type 'System.Func`1[System.Nullable`1[System.Boolean]]' to type 'System.Boolean'."
Markiert wird folgende Zeile:
Ich habe auch schon
Aber auch da kommt der gleiche Fehler.
Kann mir da jemand sagen was ich falsch übersetzt habe und was die Fehlermeldung genau bedeutet?
Edit: Noch ein TestProjekt angehangen!
Rechtschreibfehler betonen den künstlerischen Charakter des Autors.