Silverlight 4 AutoCompleteBox,将SelectedItem设置为null

syn*_*tic 5 silverlight-4.0 autocompletebox

在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;
  }
}
Run Code Online (Sandbox Code Playgroud)

困扰我的是{text = SearchText;}行.如果我将SelectedItem绑定到我的ViewModel并且在搜索条目进入AutoCompleteBox之后,SearchText不为空,那么当底层数据重置为null时,AutoCompleteBox可能会显示SearchText而不是空字符串.有人可以解释为什么这样写,并建议一个解决方法?

Jef*_*tes 1

我相信,当没有实际的搜索项目时,该框会显示类似“搜索此处”的内容。例如,请参阅 StackOverflow 的搜索框,当它为空时,它会显示“搜索”。