Autocompletebox не очищает нажатия клавиш
В моем приложении я использую окно автозаполнения WPF из набора инструментов wpf. Я реализую это через шаблон MVVM. Привязка работает нормально, но у меня есть небольшая проблема при попытке очистить содержимое autocompletebox. Если для свойства привязки в viewmodel установлено значение null, текст очищается только частично (весь текст, введенный с клавиатуры, не очищается, т. Е. Если я выбираю CH при извлечении всех городов и выбираю Чикаго, а для свойства привязки устанавливается значение null, то CH не очищается, остальное ИКАГО есть.)
XAML выглядит так:
<my:AutoCompleteBox Grid.Row="0"
Grid.Column="1"
HorizontalAlignment="Left"
Margin="0,6,0,0"
Name="acTown"
SelectedItem="{Binding NewTown, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ValueMemberBinding="{Binding Converter={StaticResource TownConverter}}"
Populating="Populating"
VerticalAlignment="Top"
Height="Auto"
</my:AutoCompleteBox>
Метод в viewmodel для очистки поля:
public void ClearTown()
{
NewTown = null;
OnPropertyChanged("NewTown");
}
Я не могу понять, что не так с кодом, или это просто ошибка в автозаполнении?
После обширных исследований я нашел эту статью: Как очистить текст поиска Silverlight AutoCompleteBox с помощью MVVM, но он не предлагает решения. Кажется, в AutoCompleteBox есть свойство SearchText, которое доступно только для чтения и не может иметь установщика
1 ответ
Наконец то понял. Если кому-то интересно, решение состоит в том, чтобы просто изменить NewTown = null
в NewTown = new NewTown()
в функции ClearTown.