在 AutoCompleteBox(可从 Microsoft 下载)的源代码中,我发现以下内容:
/// <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;
}
}
困扰我的是 {text = SearchText;} 行。如果我将 SelectedItem 绑定到我的 ViewModel,并且在 AutoCompleteBox 中搜索条目后,SearchText 不为空,那么当基础数据重置为 null 时,AutoCompleteBox 可能会显示 SearchText 而不是空字符串。有人可以解释为什么这样写,并提出解决方法吗?