5 Stimmen

Silverlight 4 AutoCompleteBox, Setzen von SelectedItem auf null

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.

1voto

Jeff Yates Punkte 59874

Ich glaube, das ist so, dass das Feld etwas wie "Hier suchen" anzeigt, wenn es keinen eigentlichen Suchbegriff gibt. Ein Beispiel dafür ist das Suchfeld von StackOverflow, in dem "Suchen" steht, wenn es leer ist.

1voto

Chris Shepherd Punkte 1326

Das ist wirklich ärgerlich und ich habe noch keine Lösung gefunden. Es ist auf dem Silverlight Toolkit Issue Tracker aquí . Ich habe auch etwas gelesen aquí über die Einstellung der ItemsSource auf Null, die ich mit zu spielen.

Ich werde es aktualisieren, wenn ich eine Lösung finde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X