2016-06-18 5 views
1

Ich möchte dem Benutzer ein Raster mit Kundenauftragszeilen darstellen. In diesem Raster kann der Benutzer einen Betrag in jeder zu versendenden Zeile eingeben. Wenn eine Schaltfläche "Speichern" gedrückt wird, werden alle geänderten Zeilen verarbeitet.Welche XAML-Design-Strategie für Haupt-/Detailansichten LOB-Anwendungen

+---+------------+---------+---------+--------+------------------+ 
| # | PartNumber | Ordered | Shipped | Descr. | Quantity to ship | 
+---+------------+---------+---------+--------+------------------+ 
| 1 | A12356  | 10  | 5  | Wheel | [ input field ] | 
+---+------------+---------+---------+--------+------------------+ 
| 2 | B54556  | 10  | 0  | Frame | [ input field ] | 
+---+------------+---------+---------+--------+------------------+ 
                [PROCESS BUTTON] 

So ist die Idee der Benutzer die Menge eingeben kann für mehrere Linien in einem Rutsch zu versenden und traf Prozess

So weit so gut.

Was ich erreichen möchte, ist, dass der Benutzer in der Lage ist, auf die Zellen in diesem Raster zu klicken.

  • Klicken Sie auf Artikelnummer: Ein generisches Inhaltselement mit Details Teil
  • Klicken Sie auf ShippedQty öffnen: Ein generisches Inhaltselement mit früheren Sendungen öffnen. während meiner Anwendung
  • usw.

Ich möchte diese generischen Elemente Inhalt wieder zu verwenden.

(Es gibt viele verschiedene Tabellen, in denen ein Benutzer einen Part klicken kann)

Während zum Beispiel sehen die Details einer Teilenummer, die bereits modifizierten Eingabefelder, blättert Position, etc, müssen intakt bleiben in die Masteransicht (die oben dargestellte Tabelle).

Meine Frage:

Was die entsprechende Design-Strategie für diese sein würde? In WinForms würde ich nur einen neuen Dialog mit den Details öffnen. Dies scheint für UWP nicht angemessen.

Bisher dachte ich an einer der folgenden Alternativen:

  • Splitview mit zwei Bereichen: (1: Master) eine Kundenauftrag Seite und (2: Detail) eine Detailseite, die Inhalte (re) abhängig davon, in welcher Spalte der Benutzer klickt.

    • Pro: Kann verwenden Frame.Navigate() in Details zu sehen.
  • Content für die Inhalte (Re) abhängig davon eingestellt, ob der Benutzer des Part klickt oder geliefert Qty usw.

  • ContentDialog oder ModalDialog für die Details Inhaltselement.

    • Dies scheint nicht die Art, wie ContentDialog verwendet werden soll. Es kann immer nur ein ContentDialog geöffnet sein, und ContentDialog wird standardmäßig in Abhängigkeit von den darin enthaltenen Oberflächenelementen dynamisch skaliert.
  • Gibt es irgendwelche Optionen, die ich vermisse?
+0

Einige interessante Lektüre: Hat jemand havea Probe für eine Lösung wie die Mail-Client in diesem Link im Bild: https://msdn.microsoft.com/en-us/library/windows/apps/dn434070 aspx? f = 255 & MSPPError = -2147217396 https://msdn.microsoft.com/en-us/windows/uwp/layout/show-multiple-views https://github.com/Microsoft/Windows- Universal-Samples/Baum/Master/Samples/MultipleViews – Jasper

Antwort

2

"Dies scheint nicht geeignet für UWP."

Ich sehe nicht, warum es nicht wäre. Sie haben viele Optionen, so dass es mehr darum geht, wie Ihre Benutzeroberfläche fließen soll, als über das verwendete Framework. Meine Erfahrung ist mit WPF ... wie anwendbar. Wie erwähnt, hängt es wirklich davon ab, wie Ihre UI aussieht und wie viel Arbeit Sie hineinlegen möchten. In meinem Fall wollte ich, dass meine Komponenten (Teiledetailbildschirm, vorheriger Versandbildschirm) vollständig unabhängig von der Host-Seite sind und die Navigation nicht stören. Die Verwendung eines modalen Dialogfensters war eine gute Wahl für mich (aber sicher nicht die einzige Wahl).

In meinen Apps füge ich eine Klassenbibliothek namens Komponenten hinzu, die Teil der Präsentationsebene ist. Ich erstelle Komponenten, die ich Selektoren (CustomerSelector, PartSelector, OrderSelector ...) aufrufen kann, die in meiner App verwendet werden können. Ein Selektor ist im Grunde ein Fenster, das in einem modalen Zustand geöffnet wird. Es zeigt ein Suchraster an und setzt eine Eigenschaft in der Auswahl auf ein Objekt oder eine Sammlung von Objekten oder null, wenn der Benutzer abbricht.

// this handles a button click event 
    public async void SelectSeriesCommandHandler(object sender, ExecutedRoutedEventArgs e) 
    { 
     SeriesSelector selector = new SeriesSelector(true, WatchListSeries); 
     bool? result = selector.ShowDialog(); // grid with search options is displayed in modal dialog window 

     if (result.HasValue && result.Value) 
     { 
      var series = selector.SelectedSeries; // use selected objects 
     } 
    } 
+0

"Völlig unabhängig von der Host-Seite und die Navigation nicht stören", das ist in der Tat, was ich suche. Ein modaler Dialog kann sich dabei als nützlich erweisen, das Framework, das ich verwende (Template10), hat auch eine ModalDialog-Klasse, um diese anzuzeigen. Ich möchte jedoch die UWP-App sowohl im Desktop- als auch im Touchscreen-Modus auf UWP-Tablets verwenden. Auf dem Touchscreen erscheint mir eine SplitView-ähnliche Lösung eher als eine Touchscreen-freundliche Lösung als ein modaler Dialog. Ich frage mich, was andere Leute darüber denken. – Jasper

+0

Schauen Sie sich den Screenshot der Mail-App in diesem Link an, es sieht eher nach der Touchscreen-Lösung für mein Ziel aus: https://msdn.microsoft.com/en-us/library/windows/apps/dn434070.aspx?f = 255 & MSPPError = -2147217396 – Jasper