Может кто-нибудь помочь мне решить проблему с комбобоксом. Вот мой элемент управления списком (WPF):
<ComboBox Grid.Row="1" Grid.Column="1" Margin="6,0,6,6" Name="comboBoxRegionTown" IsEditable="True" IsTextSearchEnabled="True" PreviewKeyUp="comboBoxRegionTown_PreviewKeyUp" IsTextSearchCaseSensitive="False" />
Идея состоит в том, чтобы сделать его автозаполненным (IsEditable = "True" IsTextSearchEnabled = "True"). Затем я набираю любой текст в поле со списком, он показывает некоторые результаты из базы данных.
Вот код события comboBoxRegionTown_PreviewKeyUp (C #):
private void comboBoxRegionTown_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
if (!string.IsNullOrEmpty(comboBoxRegionTown.Text))
{
comboBoxRegionTown.ItemsSource = _br.GetQuery(x => x.Name.Contains(comboBoxRegionTown.Text) && x.RegionTypeId == (int)RegionType.Town).ToList();
comboBoxRegionTown.IsDropDownOpen = true;
}
else
{
comboBoxRegionTown.ItemsSource = null;
}
}
Так что это прекрасно работает для меня, но затем я щелкаю по любому найденному элементу в выпадающем списке, он помещает в свойство ComboBox.Text тип моего выбранного объекта (в данном случае - Регион). Конечно, я могу переопределить метод ToString () для моего объекта Region и установить там его открытое свойство Name, и это решение отлично работает, но я думаю, что лучший способ - это найти способ связать выбранный элемент со свойством Text в поле со списком. Есть ли способ сделать это?
Я уже пытался индировать Text = "{Binding Path = Name}" и / или SelectedItem = "{Binding Path = Name}", но в этих случаях просто всегда получается пустой текст. Пожалуйста, помогите.