В моем приложении WPF я использую combobox. Когда пользователь хочет выбрать элемент, он может вводить буквы, а combobox переходит к следующей записи, начинающейся с этих букв. Если пользователь перестает печатать и запускается снова после некоторой задержки, combobox предполагает, что пользователь запустил новое слово. Ну, это обычное поведение ComboBox, ничего особенного ... Проблема в том, что некоторые из наших пользователей являются медленными. Есть ли способ увеличить время, разрешенное между вводом двух букв без combobox, предполагая, что пользователь ищет новое слово? Надеюсь, вы знаете, что я имею в виду ...WPF ComboBox для медленных программ
6
A
ответ
0
Вы можете пройти полный проход и свернуть свой собственный фильтруемый поле со списком. Проверьте этот код и посмотрите, не поможет ли он.
Часть XAML:
<ComboBox x:Name="myComboBox" TextBoxBase.TextChanged="myComboBox_TextChanged" DisplayMemberPath="myDisplay" IsEditable="True" StaysOpenOnEdit="True" SelectionChanged="myComboBox_SelectionChanged" />
Затем под капотом:
ObservableCollection<myType> myCollection;
public ICollectionView cvs { get; set; }
public MyWindow()
{
InitializeComponent();
myCollection = new ObservableCollection<myType>();
cvs = CollectionViewSource.GetDefaultView(myCollection);
myComboBox.ItemsSource = cvs;
cvs.Filter = FilterOut;
}
private void myComboBox_TextChanged(object sender, TextChangedEventArgs e)
{
cvs.Refresh();
}
private bool FilterOut(object input)
{
myType item = (myType)input;
return (string.IsNullOrEmpty(myComboBox.Text) || item.myDisplay.Contains(myComboBox.Text));
}
Смежные вопросы
- 1. WPF Border для ComboBox
- 2. WPF фокус настройки для Combobox
- 3. WPF Различные ItemsSource для Combobox
- 4. WPF ComboBox для интерфейса типа
- 5. WPF XML DataBind для ComboBox
- 6. Как установить курсор занятости для медленных элементов управления WPF
- 7. Объяснение для медленных запросов MySQL?
- 8. WPF ListView с ComboBox
- 9. WPF ComboBox Условный ItemTemplate
- 10. BitmapFrame в WPF ComboBox
- 11. ComboBox цветной TextBlock WPF
- 12. Простой фильтр combobox WPF
- 13. WPF "flying" combobox
- 14. Styling WPF ComboBox items
- 15. WPF Редактируемая проверка ComboBox
- 16. WPF Combobox очищен
- 17. WPF ComboBox автоматически связывается
- 18. Wpf Mvvm ComboBox
- 19. WPF ComboBox Связывание
- 20. WPF ComboBox получить текст
- 21. WPF Combobox DisplayMemberPath
- 22. WPF ComboBox и SelectedItem
- 23. WPF ComboBox привязки поведение
- 24. Список combobox WPF
- 25. WPF Combobox issue
- 26. Wpf ComboBox validation Trigger
- 27. C# WPF - ComboBox
- 28. C# WPF - ComboBox DataBinding
- 29. WPF - Combobox в заголовке
- 30. WPF Combobox SelectedIndex
Похоже, этот вопрос был дан ответ раньше: http://stackoverflow.com/questions/5973422/wpf-combobox -delayed-filtering –
Считаете ли вы использование 'IsEditable =" True "'? Таким образом, Combo не перезапускается автоматически, но ваши пользователи просто должны вводить какой-либо текст, который они хотят фильтровать, печатать и удалять по своему усмотрению. – almulo
Другими словами, нет встроенной функции, чтобы увеличить это время? @JamesHarcourt решение в ссылке имеет текстовое поле для фильтрации, но не совсем то, что у меня есть, но я думаю, это поможет выяснить правильный способ решения проблемы (возможно, это будет немного сложнее, не нарушая правила mvvm). –