Ayırıcı denetimi de dahil olmak üzere bir WPF düzenlenebilir ComboBox için AutoComplete System.Windows.Controls.Separator gösterir

Ayırıcı denetimi de dahil olmak üzere bir wpf düzenlenebilir ComboBox için AutoComplete System.Windows.Controls.Separator gösterir.

Bu xaml ile:


   
   
   

Kullanıcılar, geri kalan karakterleri otomatik olarak tamamlamak için bir c ile yazmayı başlatabilir. aaaaa olacak, bbbbb vb olacak.

Ancak sorun, ayırıcı eklemek ve bazılarının otomatik tamamlamadan muaf tutulmasını sağlamak. Bunu denedim:


   
   
   
   

C'ye bastığımda, açılan kutu hala ccccc'i seçim olarak gösterir. Ayrıca, S çarptığında, garip bir combobox seçeneği olarak System.Windows.Controls.Separator gösterir (!)

Beklentim otomatik tamamlandı, diğer iki (Ayırıcı ve ccccc) IsEnabled = "false" olarak ayarlandığından sadece a ve b yazmayı destekler.

Bunun için herhangi bir çözüm var mı? Lütfen bana haber ver.

1

2 cevap

Bir başlık gibi görünen bir şeyi tanıtmak için eşya koleksiyonunu kullanmak muhtemelen iyi bir fikir değildir, bunun gibi her türlü problemle karşılaşırsınız. ComboBox için özel bir Template veya bu işlevsellik için özellikler sağlayan bir özel kontrol oluşturmaktan daha iyi olabilirsiniz.

1
katma
@ Aki24x: Hayır, öyle değil, ben kodunuzu denediğimde farkettim.
katma yazar H.B., kaynak
Hata. Üzgünüm, bir hata yaptığım şey "Başlık" olarak yazdığım, ancak xaml'de "İçerik" anlamına geldiğim. Cevabınızı etkiler mi? Her halükarda, cevabınız için çok teşekkür ederim.
katma yazar Aki24x, kaynak
Anlıyorum. Yani, temelde Seperatör gibi ComboBox'a ait olmayan bir şey eklememeliyim. Özel Şablon yazmayı düşüneceğim. Çok teşekkür ederim!
katma yazar Aki24x, kaynak

Gelecek ziyaretçilere alternatif bir cevap: Bugün bu meseleye girdim ve kabul edilen cevap önerdiğinden özel bir şablon oluşturma işini yapmak istemiyorum.

Benim için liste çok sınırlıdır, bu yüzden Ayırıcı için TextSearch.Text ekli özelliğini hiç yazılma olasılığı olmayan bir karaktere ayarlıyorum. Burada telif hakkı sembolünü kullanıyorum:


 
 
 
 

0
katma