2009-06-26 5 views

Antwort

5

Um Ihre zweite Frage zu beantworten, ja, WPF-Navigation kann ziemlich erfolgreich mit dem MVVM-Muster verwendet werden.

Soweit die erste Frage lautet, ist die beste Antwort "es kommt darauf an". Dies hängt insbesondere von der Anwendung ab, die Sie erstellen möchten. Einige Anwendungen sind logische "Navigations" -Anwendungen, bei denen von den Benutzern erwartet wird, dass sie in einer Art und Weise durch eine Reihe von Bildschirmen navigieren, während andere Anwendungen unterschiedliche Paradigmen haben. Der beste Rat, den ich Ihnen geben kann, ist nicht, ihn zu bekämpfen - wenn Ihre Anwendung in einem Navigationskontext sinnvoll ist, dann verwenden Sie unbedingt WPF-Navigation, aber wenn es nicht so ist, versuchen Sie nicht, es in einen zu schüren.

Der beste Weg, um zu bestimmen, ob Ihre Anwendung ein Navigationsparadigma verwendet oder nicht, ist, ob eine Zurück-Schaltfläche sinnvoll ist oder nicht; Wenn dies der Fall ist, sollten Sie Frame oder NavigationWindow verwenden, damit Sie die integrierte WPF-Navigationsunterstützung verwenden können.

+0

Kennen Sie einige gute Navigationsbeispiele, die in eigenständigen WPF-Anwendungen verwendet werden? – dthrasher

+0

+1 für die Sache "kämpfe nicht dafür". Viele Apps sind in diesem Navigationsszenario einfach sinnlos. – TomTom

1

Ich glaube nicht, dass System.Windows.Navigation noch für Produktionsanwendungen bereit ist. Ich habe festgestellt, dass die Verwendung in einer WPF4-Anwendung frustrierend ist, wenn Daten zwischen Seiten ausgetauscht werden müssen.

Ich stieß auch auf einen schweren Fehler, der databinding to fail after using back or forward navigation verursacht.

Für MVVM-, MVC- und MVP-Anwendungen gibt es zahlreiche WPF-Toolkits und -Frameworks. Praktisch alle ersetzen die Hyperlink-, Page-, Frame- und Journal-Klassen, die Microsoft mit benutzerdefinierten Navigationsdiensten zur Verfügung stellt. Daher scheint die Entwicklergemeinschaft System.Windows.Navigation ein "Misstrauensvotum" gegeben zu haben. Hoffentlich wird sich die Unterstützung für Navigations-Apps in Zukunft verbessern.

Wenn Sie eine Anwendung haben, die für die Navigation Metapher geeignet ist, ist es wahrscheinlich wert, diese alternativen Frameworks zu untersuchen. (Natürlich haben diese Toolkits ihre eigene Lernkurve.)

Ich bin immer noch auf der Suche nach einem guten Ansatz für dieses Problem selbst.

Verwandte Themen