Если у вас возникли проблемы с попыткой выяснить, с чего начать, на самом деле существует несколько этапов и, вероятно, НЕСКОЛЬКО способов сделать это.
Вверху моей головы, вы можете создать скрытую ListBox
отображается под вашим TextBox
, в котором содержатся ваши предложения (убедитесь, что ListBox
соответствует размеру содержимого). При изменении текста вы можете использовать простое событие TestChanged
.
XAML:
<TextBox x:Name="someTextbox"
TextChanged="someTextbox_TextChanged"
</TextBox>
Код сзади:
private void someTextbox_TextChanged(object sender, TextChangedEventArgs e)
{
// Call method to check for possible suggestions.
// Display Listbox with suggested items.
}
Затем, нажав на элемент в Listbox
обновит текст.
ПРИМЕЧАНИЕ: Вам понадобится какой-то способ предотвратить запуск события logi c, когда пользователь выбирает предложение из ListBox
Теперь для MVVM:
private string _SomeTextbox = "";
public string SomeTextbox
{
get { return _SomeTextbox; }
set
{
_SomeTextbox = value;
OnPropertyChanged(new PropertyChangedEventArgs("SomeTextbox"));
// Call method to check for possible suggestions.
// Display Listbox with suggested items.
}
}
С MVVM вы можете сравнительно легко связать видимость и контент ListBox
и затем отображать их по мере необходимости.
ДРУГОЙ способ сделать это - отредактировать TextBox
по умолчанию, чтобы иметь встроенный ListBox
. Однако этот путь более сложен.
Надеюсь, это поможет вам начать.