Лучший отвечающий
WPF Editable Combobox

Вопрос
-
Есть Combobox с заранее определенным списком, но при этом пользователь сам может добавлять новые элементы. Свойство IsEditable не помогает, введенный текст не присваивается в SelectedItem/
<ComboBox SelectedItem="{Binding Seller}" ItemsSource="{Binding OrderSellers}" IsEnabled="{Binding BoughtOrder}" IsEditable="True"/>
public string Seller { get { return _seller; } set { if (_seller == value) return; _seller = value; if (!OrderSellers.Contains(_seller)) OrderSellers.Add(_seller); RaisePropertyChanged("Seller"); } }
Если воспользоваться свойством Text у Combobox, то присвоение происходит на событие изменения текста, а не потерю фокуса. В результате чего в Combobox добавляется вся история правок, т.е.:
т
те
тек
текс
текст
<ComboBox Text="{Binding Seller}" SelectedItem="{Binding Seller}" ItemsSource="{Binding OrderSellers}" IsEnabled="{Binding BoughtOrder}" IsEditable="True"/>
9 марта 2011 г. 8:34
Ответы
-
Можете задать в выражении привязки, чтобы изменения происходили не по изменению свойста, а при потери фокуса. Это делается с помощью свойста UpdateSourceTrigger:
<ComboBox Text="{Binding UpdateSourceTrigger=LostFocus}"></ComboBox>
Для связи [mail]- Предложено в качестве ответа Abolmasov Dmitry 24 марта 2011 г. 14:03
- Помечено в качестве ответа I.Vorontsov 29 марта 2011 г. 8:12
12 марта 2011 г. 18:56
Все ответы
-
Вопрос то собственно такой: что надо делать?9 марта 2011 г. 8:38
-
Можете задать в выражении привязки, чтобы изменения происходили не по изменению свойста, а при потери фокуса. Это делается с помощью свойста UpdateSourceTrigger:
<ComboBox Text="{Binding UpdateSourceTrigger=LostFocus}"></ComboBox>
Для связи [mail]- Предложено в качестве ответа Abolmasov Dmitry 24 марта 2011 г. 14:03
- Помечено в качестве ответа I.Vorontsov 29 марта 2011 г. 8:12
12 марта 2011 г. 18:56