2017-02-09 2 views
2

У меня есть combobox, я хочу, чтобы пользователь мог ввести свой выбор в поле со списком. Я устанавливаю его для редактирования, который работает, но пользователь может ввести любую запись, которую они хотят. Хотя говорят, что в списке есть Dog, Cat, Bird. Вместо этого пользователь может ввести Snaked. Как я могу остановить это?WPF Combobox isEditable запись связывания в список

 <ComboBox IsEditable="True" Grid.Column="2" Grid.Row="1" Margin="5,3,0,0" 
        Text="{Binding Model.Number}" ItemsSource="{Binding DList}" 
        SelectedItem="{Binding Model.Number}" 
        IsEnabled="{Binding EnableComboBox}" 
        VerticalAlignment="Top"> 

     </ComboBox> 
+0

Я не понял, «Я хочу, чтобы пользователь мог войти вариант, который они хотят из-за длины этого предложения. Не могли бы вы подробнее рассказать? – Sagar

+0

Итак, вы хотите, чтобы одна запись в поле со списком была выбрана, когда выбирается, combobox становится редактируемым? – Madenis

+0

обновлено для ясности – KrystianB

ответ

0

Сделать его только для чтения, это остановит функцию ввода. Если в VS вы можете сделать это в разделе свойств в поле со списком.

0

Как я могу остановить это?

Установите IsEditable свойство ложно и IsTextSearchEnabled свойство верно:

<ComboBox IsEditable="False" ItemsSource="{Binding DList}" IsTextSearchEnabled="True" /> 

Это не имеет большого смысла иметь изменяемую ComboBox с TextBox, если вы только хотите, чтобы пользователь мог для выбора того, что действительно присутствует в коллекции Items.

Если ComboBox привязан к IEnumerable<T> вы можете установить TextSearch.TextPath свойство с именем свойства типа T:

<ComboBox IsEditable="False" ItemsSource="{Binding Animals}" IsTextSearchEnabled="True" TextSearch.TextPath="AnimalName" /> 
Смежные вопросы