Başlangıç olarak, kullanıcının mevcut seçeneklerden birinde yazıp yazmadığını görmesini isteyebilirsiniz.
1) "Otomatik tamamlama açılan kutuyu" ara.
2) bu göz atın:
http://weblogs.asp.net/okloeten/archive/2007/11/12/5088649.aspx
http://www.codeproject.com/KB/WPF/WPFCustomComboBox.aspx
3) Ayrıca şunu da deneyin:
<ComboBox IsEditable="true" TextSearch.TextPath="Content">
<ComboBoxItem Content="Hello"/>
<ComboBoxItem Content="World"/>
</ComboBox>
Yukarıdaki kod parçası görsel" olduğunu sağlamak için bir primite yoludur gösterge "sizin için arıyoruz. Kullanıcı 'h' olarak yazıyorsa, giriş metin kutusunda 'merhaba' görünecektir. Ancak, bu kendi başına, kullanıcının yasadışı bir karakter yazmasını engellemek için bir mekanizmaya sahip olmayacaktır.
4) Bu daha gelişmiş bir versiyonudur: Biz hiçbir combobox madde olduğunu tespit kez İşte
private void myComboBox_KeyUp(object sender, KeyEventArgs e)
{
// Get the textbox part of the combobox
TextBox textBox = myComboBox.Template.FindName("PART_EditableTextBox", myComboBox) as TextBox;
// holds the list of combobox items as strings
List<String> items = new List<String>();
// indicates whether the new character added should be removed
bool shouldRemove = true;
for (int i = 0; i < myComboBox.Items.Count; i++)
{
items.Add(((ComboBoxItem)myComboBox.Items.GetItemAt(i)).Content.ToString());
}
for (int i = 0; i < items.Count; i++)
{
// legal character input
if(textBox.Text != "" && items.ElementAt(i).StartsWith(textBox.Text))
{
shouldRemove = false;
break;
}
}
// illegal character input
if (textBox.Text != "" && shouldRemove)
{
textBox.Text = textBox.Text.Remove(textBox.Text.Length - 1);
textBox.CaretIndex = textBox.Text.Length;
}
}
biz kullanıcıyı izin vermeyin yazarak devam: Kod-arkasında
<ComboBox Name="myComboBox" IsEditable="true" KeyUp="myComboBox_KeyUp">
<ComboBoxItem Content="Hello"/>
<ComboBoxItem Content="World"/>
<ComboBoxItem Content="WPF"/>
<ComboBoxItem Content="ComboBox"/>
</ComboBox>
metin kutusundaki metinle başlar. Eklenen karakteri kaldırır ve başka bir karakter bekleriz.
WPF öğretmenimin ders sırasında onlarca kez tekrarladığı bir ipucu: WPF'de SelectedItem'i ASLA kesinlikle kullanmamalısınız. Koleksiyon görünümleri budur. –