Автозаповнення для редагованого WPF ComboBox, включаючи керування сепаратором, показує систему

Автозаповнення для редагованого wpf ComboBox, включаючи контроль сепаратора, показує System.Windows.Controls.Separator.

За допомогою цієї xaml:


   
   
   

Користувачі можуть починати друкувати з a до c, щоб автоматично заповнити інші символи. a стане aaaaa, b стане bbbbb і так далі.

Однак проблема полягає в тому, що я хочу додати роздільник і зробити деякі з них звільненнями від автозаповнення. Я спробував:


   
   
   
   

Коли я натиснув c, combobox все ще покаже ccccc як вибір. Крім того, коли я натискаю клавішу S, дивно комбобокс показує System.Windows.Controls.Separator як вибір (!)

Моє сподівання було автозаповненням підтримується лише введення a та b, оскільки два інших (Separator та ccccc) встановлено в IsEnabled = "false".

Чи є рішення для цього? Будь ласка, дай мені знати.

1

2 Відповіді

Використання колекції елементів, щоб ввести щось, що виглядає як заголовок, напевно, не є такою гарною ідеєю, ви зіткнетеся з різними проблемами, включаючи цю. Можливо, краще створити спеціальний Шаблон для ComboBox або користувальницький елемент керування, який надає властивості для цієї функції.

1
додано
@ Aki24x: Ні, це не так, я помітив, що вже коли я спробував ваш код.
додано Автор H.B., джерело
На жаль. На жаль, одна річ, яку я зробив помилку, це те, що я написав як "Header", але я мав на увазі "Content" в xaml. Чи впливає це на вашу відповідь? У будь-якому випадку, велике спасибі за відповідь.
додано Автор Aki24x, джерело
Я бачу. Отже, в основному я не повинен включати щось, що не належить до ComboBox, наприклад Separator. Я подумаю про написання власного шаблону. Велике спасибі!
додано Автор Aki24x, джерело

Альтернативна відповідь для майбутніх відвідувачів: Сьогодні я зіткнулася з цим питанням і не хочу проходити всю роботу зі створення власного шаблону, як пропонується прийнята відповідь.

Для мене цей список дуже обмежений, тому я встановлюю властивість TextSearch.Text для Separator символу, який навряд чи буде введений. Тут я використовую символ "Авторське право":


 
 
 
 

0
додано