| 

.NET C# Java Javascript Exception

3
Folgendes Szeanario

Ich habe eine Collection, die im View mit 2 CollectionViewSource gefiltert dargestellt wird. (Position 1 und Position 2).

Jedes Element der Collection wird mit einer TextBox und einem Button dargstellt.
In die TextBox können Werte eingetragen werden. Wenn dies passiert, dann wird der Wert gespeichert und ein neues Element mit einem leeren Wert in der aktuellen gefilterten Ansicht hinzugefügt. Bleibt das Feld leer, passiert nichts. Der Button entfernt das entsprechende Element.

Das funktioniert soweit.

Wenn ich nun beim letzten Element / Textbox in Position 1 einen Wert eintrage und das Feld verlasse, springt der Focus auf das erste Element von Position 2.

Ist es möglich, den Focus so zu setzen, dass das neue Element in Position 1 den Focus erhält, anstatt das erste Element in Position 2.

zur Veranschaulichung:
Screenshot
23.07.2014
lbm1305 849 1 8
lbm1305 849 1 8
1 Antwort
0
Wie genau verlässt du denn das Feld in Position 1?
Wenn du die Tab-Taste drückst, geht der Focus auf das nächste Element in der Tab-Reihenfolge nach der Eigenschaft TabIndex aller "fokussierbaren Controls".
Man könnte also den TabIndex beim Erstellen des neuen Elements auf den TabIndex des aktuellen Elements + 1 setzen und den TabIndex aller nachfolgenden Elemente um 1. Damit würde der Focus vermutlich auf das neue Element gehen, sobald man Tab drückt.
23.07.2014
SHubertus 10 4
Es gibt aktuell zwei Varianten um das neue Element zu erstellen. a) Auf Enter / Return wird ein Command ausführt, welches den Wert speichert und im Nachgang das das neue Element hinzufügt. b) EventTrigger auf das LostFocus-Ereignis, welches aber wiederum die das Command aus A aufruft. Wenn ich die Tabreihenfolge setze, müssen ja die weiteren Tab-Indizes angepasst werden.
lbm1305 23.07.2014
Bei Variante a) verbleibt der Cursor im aktuellen Feld, bei b) geht er in das nächste Element
lbm1305 23.07.2014
Das mit den nachfolgenden TabIndizes habe ich gerade nachgetragen... Als Teil des Commands auf Enter hin, müsste man doch auch
NewTextBox.Focus
aufrufen können, oder nicht?
SHubertus 23.07.2014
mit MVVM etwas schwierig, da ich nur ein neues Element der im ViewModel hinterlegten Collection hinzufüge. Das Element wird dann per DataTemplate dargestellt.
lbm1305 23.07.2014

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH