Ich habe eine WPF-Anwendung in MVVM mit 2 Textfelder, und ich will i2 datatriggers für die Textfelder „NodeBarcode_1“ und „NodeBarcode_2“WPF MVVM Schalter Fokus zwischen zwei Textfelder
erstellt dynamicalyIn WPF setzen konzentrieren
<DataTrigger Binding="{Binding NodeBarcode_1_GetFocusNow}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value ="{Binding ElementName=NodeBarcode_1}"/>
</DataTrigger>
<DataTrigger Binding="{Binding NodeBarcode_2_GetFocusNow}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value ="{Binding ElementName=NodeBarcode_2}"/>
</DataTrigger>
im Ansichtsmodell erstellt i 2 boolean Variablen:
public const string NodeBarcode_1_GetFocusNowPropertyName = "NodeBarcode_1_GetFocusNow";
private bool _NodeBarcode_1_GetFocusNow = false;
public bool NodeBarcode_1_GetFocusNow
{
get
{
return _NodeBarcode_1_GetFocusNow;
}
set
{
if (_NodeBarcode_1_GetFocusNow == value)
{
return;
}
_NodeBarcode_1_GetFocusNow = value;
RaisePropertyChanged(NodeBarcode_1_GetFocusNowPropertyName);
}
}
public const string NodeBarcode_2_GetFocusNowPropertyName = "NodeBarcode_2_GetFocusNow";
private bool _NodeBarcode_2_GetFocusNow = false;
public bool NodeBarcode_2_GetFocusNow
{
get
{
return _NodeBarcode_2_GetFocusNow;
}
set
{
if (_NodeBarcode_2_GetFocusNow == value)
{
return;
}
_NodeBarcode_2_GetFocusNow = value;
RaisePropertyChanged(NodeBarcode_2_GetFocusNowPropertyName);
}
}
Und ich erstellt 2 methodes die execuut, wenn der Benutzer einen Barcode in das Textfeld betritt
Wenn der Benutzer den ersten Barcode in der Textbox "NodeBarcode_1" scannt, geht der Fokus auf "NodeBarcode_2". Kein Problem. Aber wenn der Benutzer den nächsten Barcode in "NodeBarcode_2" scannt, möchte ich, dass der Fokus zurück zu "NodeBarcode_1" geht. Aber das passiert nicht.
Was kann dieses Problem verursachen?
Ich habe diese Lösung versucht, aber es funktioniert nicht. Der Fokus reicht von "Nodebarcode_1" bis "NodeBarcode_2", aber er geht nicht zurück auf 1 – Softtoon
@Softtoon Antwort aktualisiert mit funktionierendem Beispiel – lokusking