Frage

Ich experimentiere mit MVVM im Rahmen einer einfachen WPF-Anwendung. Ich habe einen Befehl an eine Taste angebracht. Wenn der Text in einem Textfeld ‚falsch‘ ist, möchte ich die TextBox zu erhalten konzentrieren und alle ist es Inhalte ausgewählt. Es scheint der einzige Weg, dies zu tun, ist entweder durch eine Art von direkten Aufruf aus dem Befehl in meinem Viewmodel auf die Ansicht, oder Setup eine Art von Ereignis, das die Ansichtsmodell ausgelöst und der Blick lauscht. Von dort aus kann der Blick direkte Anrufe auf dem Text in Frage stellen.

Ich versuche, in der entkoppelten Art von MVVM zu bleiben, aber es scheint, als gäbe es keine Möglichkeit gibt, ich dieses Verhalten deklarativ in XAML bekommen, oder direkt in Code in dem Ansichtsmodell, ohne zumindest indirekt mit der Ansicht im Gespräch (entweder ein Schnittstelle oder Vielseitigkeits). Ich würde auch einen Verweis auf die Ansicht in dem Ansichtsmodell halten müssen.

Was wäre hier ein ‚best practice‘ in Betracht gezogen werden, und wie entkoppelt werden soll Ansichten wirklich von Viewmodels in ‚echten‘ MVVM-Anwendungen sein?

War es hilfreich?

Lösung

Es ist Code, der direkt an die Steuerung des UI gebunden ist, so dass ich denke, in diesem Fall der Anzeige für die Code-Behind ist, wo es hingehört. Vielleicht haben Sie ein Ereignis oder etwas ähnliches einrichten möchten. Auf diese Weise ist es noch entkoppelt wie vor -. Der Blick weiß das Viewmodels sowieso, man muss nur ein paar Zeilen Code hat in dem Code-Behind

Andere Tipps

ich habe gleiches Problem gestoßen, was ich tat, ein angepasste Textfeld wird und Abhängigkeitseigenschaft von dieser Steuerung aus.

Wie Fokus, selectalltext und bindet diese Eigenschaften Modell anzuzeigen.

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