настоящего время я использую этот AutoCompleteTextBox
в моем проекте: WPFTextBoxAutoCompleteUpdateSourceTrigger использования C# WPF
Я связывание TextBox к List<string>
имен работников. Я делаю это так;
<TextBox
Width="250" Height="50" HorizontalAlignment="Center"
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}"
behaviors:AutoCompleteBehavior.AutoCompleteItemsSource="{Binding Employees}"
/>
То, что я хочу, чтобы TextBox
сделать, это предложить предложение, когда пользователь вводит в имя сотрудника. Однако никаких предложений не возникает, и это заставляет меня думать, что я не привязываю должным образом UpdateSourceTrigger
.
Если я только привязываю поведение к List<string>
, то как работает Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}"
, когда нет собственности на имя Работника? Я немного уверен в том, что нужно изменить для запуска источника обновлений.
Веб-сайт предоставляет следующее объяснение: Теперь, каждый раз, когда свойство TestText вашего datacontext изменяется, WPFTextBoxAutoComplete предоставит вам предложения автозаполнения.
Однако, я не считаю, что мой DataContext
имеет свойство «Имя».
EDIT:
/**** AutoComplete ****/
public static readonly DependencyProperty AutoCompleteTest = DependencyProperty.Register(
"Test", typeof(string), typeof(CompanyManagement), new PropertyMetadata(default(string)));
public string Test
{
get { return (string)GetValue(AutoCompleteTest); }
set { SetValue(AutoCompleteTest, value); }
}
TextBox XAML
<TextBox
Width="250" Height="50" HorizontalAlignment="Center"
Text="{Binding Test, UpdateSourceTrigger=PropertyChanged}"
behaviors:AutoCompleteBehavior.AutoCompleteItemsSource="{Binding Employees}"
/>
Вы можете отлаживать связывание и видеть то, что происходит с текстом. Вы можете сделать это, добавив в текст «Text =» {Binding Name, diagnostics: PresentationTraceSources.TraceLevel = High, UpdateSourceTrigger = PropertyChanged} 'и добавьте пространство имен xmlns: diagnostics =": System.Diagnostics; assembly = WindowsBase "в определение окна – Zippy