Im Quellcode von AutoCompleteBox (herunterladbar von Microsoft) habe ich folgendes gefunden:
/// <summary>
/// Called when the selected item is changed, updates the text value
/// that is displayed in the text box part.
/// </summary>
/// <param name="newItem">The new item.</param>
private void OnSelectedItemChanged(object newItem)
{
string text;
if (newItem == null)
{
text = SearchText;
}
else
{
text = FormatValue(newItem, true);
}
// Update the Text property and the TextBox values
UpdateTextValue(text);
// Move the caret to the end of the text box
if (TextBox != null && Text != null)
{
TextBox.SelectionStart = Text.Length;
}
}
Was mich stört, ist die Zeile {text = SearchText;}. Wenn ich SelectedItem zu meinem ViewModel binden und nach einer Sucheingabe in die AutoCompleteBox, SearchText nicht leer ist, dann, wenn die zugrunde liegenden Daten auf null zurückgesetzt wird, AutoCompleteBox kann SearchText anstelle der leeren Zeichenfolge anzeigen. Kann jemand erklären, warum es auf diese Weise geschrieben ist, und eine Problemlösung vorschlagen?
0 Stimmen
Danke für den Hinweis auf die richtige Richtung.