Mein Moderator muss der Benutzer, um weitere Informationen zu veranlassen. Wie verdrahte ich es auf?

StackOverflow https://stackoverflow.com/questions/1049339

  •  20-08-2019
  •  | 
  •  

Frage

Ich arbeite mit den Passiv Ansicht Mustern. Der Benutzer klickt auf eine neue Konto-Taste. Die Ansicht Delegierten Verantwortung auf den Vortragenden mit parameterlos Methodenaufrufe.

Das Problem ist, es gibt mehrere Kontotypen, sodass der Benutzer holen muss, welche sie erstellen möchten. Wie behebe ich das?

  1. Erstellen Sie eine neue Form aus der Sicht, die benötigten Informationen erhalten und es als eine Eigenschaft zu, so der Moderator es abrufen kann. (Dies ignoriert die Vorstellung, dass die Ansicht keine Logik darin haben sollte)
  2. Erstellen und das neue Formular aus dem Presenter verwenden. (Dies bindet den Moderator direkt in eine Form, ohne auf den gesamten Punkt von MVP)
  3. Erstellen Sie die neue Form woanders und geben es als Konstruktor Argument auf den Vortragenden in ... oder Ansicht.
  4. eine neue Schaltfläche für jeden Kontotyp
  5. Vergessen Sie es und fügen. (Es gibt eine Reihe von Kontoarten und dies wird die UI Krempel, aber es so sein.)
  6. Ich werde dies über den falschen Weg und muss mein Design zu überdenken. (Wenn dies der Fall ist, ein Schub in denen die richtigen Richtung würde geschätzt.)
War es hilfreich?

Lösung 4

Meine Lösung für dieses war anders als ich erwartet hatte. Ich habe die Taste der Benutzer auf eine DropDownMenuButton geklickt. Dann ging ich eine String-Liste von Kontotypen zu der Ansicht, die die Dropdown-Menü auffüllt. Ich habe auch einen Event-Handler für das Drop-Down-Click-Ereignis Menüpunkt, der mit dem Namen des Menüpunktes eine öffentliche Eigenschaft aktualisiert dann die Delegierten alles andere auf den Vortragenden.

Der Präsentator hat nur den Menüpunkt Namen von der exponierten Immobilie erhalten und dann in einem eigenen Wörterbuch von Kontotypen auf den Kontotyp Nachschlag auf den Kontotyp Namen als Schlüssel verwendet wird.

Andere Tipps

Ich würde wahrscheinlich ein anderes Moderator-View-Paar schafft den Kontotyp für immer. Dann entweder

  • Ihr Moderator ruft den anderen Moderator direkt das neue Formular oder
  • anzuzeigen
  • Ihr Moderator fragt ihr Modell für den richtigen Kontotyp. Das Modell weiß, dass es sollte woanders fragen und ruft den „Kontotyp Moderator“ oder auch das „Kontotyp-Modell“.

Ich glaube, ich mit der ersten Option gehen würde, es sei denn, Ihr Moderator unhandlich wächst.

Ich bin kein Experte MVP, aber ich würde dies umgehen, indem einen Delegierten mit dem Kontotyp aus der Sicht zu bekommen. Der Moderator ruft die Delegierten auf der Ansicht, die die „select Kontotyp“ Form und gibt den ausgewählten Kontotyp öffnet, wenn der Benutzer einen Kontotyp ausgewählt hat und geschlossen das Formular aus.

Wenn Sie über eine einfache Schnittstelle für die Auswahl sprechen ein Kontotyp, IMO, hängt es von der Anzahl der Kontoarten. Ich möchte hinzufügen, nur neue Schaltflächen für jedes Konto. Wenn Sie jedoch eine Menge Kontoart haben, würde ich eine Combobox mit der Liste aller möglichen Konten hat und die erste (die der Benutzer zum ersten Mal sieht) ein ungültiger oder nicht ausgewählter Typ sein. Ich würde auch einige Label sagen „Wählen Sie den Kontotyp erstellen“ hinzufügen, dann eine einzige Taste drücken, die den Wert in der Combobox zum Modell sendet. Auf diese Weise, wenn der Benutzer nur auf die Schaltfläche klickt, ohne auf einen Kontotyp auswählen, wird das Modell gültig Typ, und senden Sie das Problem der Ansicht (und die Ansicht kann die Box oder roten Text oder was auch immer hervorheben). Das würde den Benutzer fehlt die Kontotyp Auswahl verhindern. Dieser Ansatz würde auch machen Einheit leichter zu testen.

Wenn Sie sich über die einzelnen Kontotypen sprechen verschiedene Informationen mit, die ausgefüllt werden muss, dann würden Sie eine andere Ansicht und Moderator pro jedes Konto haben müssen. (Dies wäre, was Sie brauchen, nachdem der Benutzer den Kontotyp wählt)

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