Ich habe eine nicht editierbare Combobox (SupplierDropdown
), und ich möchte, wenn der Benutzer den letzten Wert auf der Liste wählt, sollte die Combobox editierbar sein, ohne Wert und automatisch fokussiert für die Benutzer, um ihren Wert einzugeben. Mit anderen Worten, eine editierbare, leere Box mit einem blinkenden Cursor zur Eingabe bereit.Combobox bekommt keinen Fokus
Hier ist der Code, den ich habe:
private void SupplierDropdown_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (SupplierDropdown.SelectedIndex == SupplierDropdown.Items.Count - 1)
{
SupplierDropdown.IsEditable = true;
SupplierDropdown.Text = "";
SupplierDropdown.Focus();
}
}
Doch obwohl in der Tat die Combobox editierbar wird, wird der Rest des Codes nicht zu funktionieren scheint: (a) die Combobox klar nicht den Wert der Benutzer hat gewählt, und (b) die Combobox bekommt den Fokus nicht, der Benutzer muss einmal auf den Tab drücken, um den blinkenden Cursor in der Combobox zu sehen.
Wie kann ich das schaffen?
Ich würde nicht empfehlen, mit dem Index zu arbeiten, aber vergleichen Sie das 'SelectedItem' mit Ihrer" Other "/" Custom "-Instanz, die robuster sein sollte. –
Außerdem fehlt die else-Klausel, die die Bearbeitbarkeit zurücksetzt. –
@H.B. Danke, ich möchte Sie bitten, mehr zu Ihrem ersten Kommentar zu erzählen, aber ich glaube nicht, dass hier der richtige Ort dafür ist. Was deinen zweiten Kommentar angeht, hast du recht, das ist noch kein fertiger Code, ich bin einfach hier geblieben und habe mich entschieden zu fragen. –