У меня есть ComboBox с национальностью, как показано ниже, и вы хотите сделать это так, чтобы пользователь мог набирать буквы до узким на выбор. Я мог бы решить это так, как я начал снижать, добавив логику в метод CitizensComboBox_KeyDown.Это лучший способ создать AutoSuggest в WPF ComboBox?
Это лучший способ создать AutoSuggest в ComboBox или есть встроенный способ сделать то же самое?
XAML:
<ComboBox x:Class="TestComboSuggest343.NationalityComboBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Code-Behind:
public partial class NationalityComboBox : ComboBox
{
public NationalityComboBox()
{
InitializeComponent();
Items.Add(new KeyValuePair<string, string>(null, "Please choose..."));
Items.Add(new KeyValuePair<string, string>(null, "American"));
Items.Add(new KeyValuePair<string, string>(null, "Australian"));
Items.Add(new KeyValuePair<string, string>(null, "Belgian"));
Items.Add(new KeyValuePair<string, string>(null, "French"));
Items.Add(new KeyValuePair<string, string>(null, "German"));
Items.Add(new KeyValuePair<string, string>(null, "Georgian"));
SelectedIndex = 0;
KeyDown += new KeyEventHandler(NationalityComboBox_KeyDown);
}
void NationalityComboBox_KeyDown(object sender, KeyEventArgs e)
{
SelectedIndex = 4; // can create logic here to handle key presses, e.g. "G", "E", "O"....
}
}
1) Существует Свойство из коробки «IsSearchFilterEnabled». 2) Проблема в том, что когда это свойство включено, оно автоматически завершает слово. Есть ли вообще избежать этого? – Shimmy