Frage

Ich bin mit einem WCF-Dienstverweis in einem WPF-Projekt, und mein Entity Framework-Datenmodell besteht in WCF-Projekt.

Und ich bin mit MVVM Licht Rahmen. Ich tue die folgenden Dinge:

  1. Ich verwende LINQ in den Servicedaten zu bekommen und dann holen sie von WPF, obersvablecollections in der Regel.
  2. Alles funktioniert im Blick Teil wie Datagrid bevölkern, Ansichten, wie erforderlich.

Aber ich habe folgende Zweifel:

  1. Ist die korrekte Art von Daten zwischen wcf und wpf zu übertragen.
  2. Ich habe das Modell für etwas noch nicht verwendet, ich habe Zweifel, wenn es zu benutzen?
  3. Ich wollte auch Daten von Datenraster speichern. Ich konnte die ObservableCollection aktualisierter Daten von Datagrid zur Weitergabe an die Funktion des Service. Aber wie aktualisiere ich die Einheit aus dieser Sammlung? von looping? klingt nicht richtig. Sobald ich die Einheit aus dieser Sammlung aktualisieren kann ich savechanges zu Update in der Datenbank verwenden.
  4. Wenn ich hierarchischer Daten in einer Baumansicht zeigen müssen, wo diese Daten hierarichal machen, von Stored Procedure xml? verwenden, um eine Ansicht, die ein Gruppierungskriterium Spalt zu erstellen? diese Spalte in Dienst erstellen? erstellen, um diese Spalte / Objekt in der Präsentation?
War es hilfreich?

Lösung

1 -. Es gibt keine richtige Art und Weise, es hängt von Ihren Anforderungen und Zielen

2 - Mit MVVM sollte das Modell zwischen WPF und der Datenbank sitzen. Das heißt alle Anrufe auf die Datenbank sollte durch das Modell gehen, und alle Schreibvorgänge in die Datenbank sollte auch das Modell gehen. Die WPF GUI sollte nur an das Modell binden. Dies bedeutet in der Regel, dass Ihr WPF Teil hauptsächlich aus XAML-Code besteht. Alle Code, der auf die Datenbank zugreift sollte im Modell sein.

Es gibt gute Gründe für diese Trennung.

  • Sie können Unit-Tests, dass auf dem Modell schreiben.
  • Die Ansicht Modell ist aus dem Blick des GUI unabhängig. Dies bedeutet, dass Sie können leicht die GUI von in verschiedenen Komponenten fallen ändern und nur auf das Modell zu binden.
  • Eine schnelle Google-Suche kann wahrscheinlich mehr Gründe ergeben.

3 - Ich würde versuchen, nur die Objekte senden über die geändert wurden. Dies kann, indem man die Sammlung auf Ihren View-Modell durchgeführt werden, und die Ansicht Modell herausfinden, was sich geändert hat.

4 - Ich verstehe nicht ganz, was Sie tun möchten. Normalerweise einen TreeView zu machen, sollten Sie HierarchicalDataTemplate für jede Ihrer Ansicht Modelle erstellen. Das TreeView-Steuerelement kümmert sich um den Rest. Sie sollten sich wirklich einige Tutorials auf diese tun, weil es irgendwie schwer ist dein Kopf herum zu wickeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top