Как очистить значение поля автозаполнения? - PullRequest
0 голосов
/ 21 декабря 2011

Как и многие вещи в WPF, иногда самые простые вещи - это те, для которых труднее всего найти примеры! Как вы очищаете текущий текст AutoCompleteBox? В моем событии OnFocus я хочу убедиться, что пользователю дана четкая рамка для входа. Так что моя процедура события выглядит как

private void autGlobal_GotFocus(object sender, RoutedEventArgs e)
{
    AutoCompleteBox acb = (AutoCompleteBox)sender;
    if (acb.SearchText == "Search Term")
    {
        //clear out the box if it has the focus                    
        this.autGlobal.Text = "";
    }         
}

Однако установка свойства text напрямую не работает. Я что-то упускаю из виду?

Ответы [ 3 ]

0 голосов
/ 23 декабря 2011

Я думаю, что нашел ответ, потратив кучу времени на это и XAML.Этот пример кода не будет работать, если для параметра IsTextCompletionEnabled установлено значение true в XAML.Я установил в false, и этот код работает нормально.

0 голосов
/ 14 мая 2017

Вам нужно сбросить выбранный пункт тоже.

private void SearchAutoCompleteBox_OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    SearchAutoCompleteBox.SelectedItem = null;

    SearchAutoCompleteBox.Text = string.Empty;
}
0 голосов
/ 21 декабря 2011

Вы пытались установить свойство для локальной переменной?

acb.Text = string.Empty;

У меня есть ощущение, что может быть дополнительный код, влияющий на поле .Text, когда запускаются события фокуса или обмена текстами.

...