2010-10-22 6 views
5

Im Quellcode von AutoCompleteBox (zum Herunterladen von Microsoft) auf null Einstellung fand ich folgendes:Silverlight 4 AutoCompleteBox, SelectedItem

/// <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 {text = Suchtext;} Linie. Wenn ich SelectedItem an mein ViewModel anhefte und nach einem Sucheintrag in die AutoCompleteBox, ist SearchText nicht leer, und wenn die zugrunde liegenden Daten auf Null zurückgesetzt werden, zeigt AutoCompleteBox möglicherweise SearchText anstelle einer leeren Zeichenfolge an. Kann jemand erklären, warum es so geschrieben ist, und einen Workaround vorschlagen?

+0

Danke, dass Sie mich in die richtige Richtung weisen. –

Antwort

1

Ich glaube, das ist so, dass, wenn es kein tatsächliches Suchelement gibt, die Box etwas wie "Suche hier" anzeigt. Ein Beispiel finden Sie im Suchfeld von StackOverflow, das "Suchen" anzeigt, wenn es leer ist.

+0

Sounds & sieht direkt aus begrenztem Code zur Verfügung. – cofiem

1

Das ist wirklich nervig und ich habe noch eine Lösung gefunden. Es ist auf dem Silverlight Toolkit Issue Tracker here. Ich habe auch etwas here über das Setzen der ItemsSource auf null gelesen, mit dem ich ungefähr spielen werde.

Ich werde aktualisieren, wenn ich eine Problemumgehung finden.