Winforms ComboBox Databind с DropDownStyle = Dropdown - PullRequest
0 голосов
/ 18 июня 2009

Winforms / .Net 3.5

Я использую комбинированный список с раскрывающимся стилем раскрывающегося меню (позволяет пользователям вводить данные).

Проблема, с которой я столкнулся, заключается в том, как настроить комбинированный список, чтобы он обновлял мой источник привязки значениями из списка, а также когда пользователь вводит данные.

Например, комбинированный список может содержать следующие значения:

«Красный», «Белый», «Синий». Но пользователь должен иметь возможность ввести «Черный».

Я пытался использовать свойство «Текст», но проблема в том, что мои отображаемые значения в выпадающем списке содержат дополнительную информацию (код и описание), чем значение (только код).

Я пытался использовать SelectedValue при добавлении привязок в комбинированный список, но затем он обновляется только со значениями из списка, а не когда пользователь вводит данные.

MyComboBox.DataBindings.Add("SelectedValue", MyBindingSource, "MyProperty", True, DataSourceUpdateMode.OnValidation)

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 26 апреля 2013

У меня была такая же проблема. Я решил это, заменив параметр «SelectedValue» на «Text» в методе DataBindings.Add. MyComboBox.DataBindings.Add ("Текст", MyBindingSource, "MyProperty", True, DataSourceUpdateMode.OnValidation)

0 голосов
/ 09 октября 2009

В вашем проверочном событии, если text.isNullOrEmpty () == fallse && selectedItem == null или selectedIndex <0 </p>

  1. проверить, существует ли элемент с таким именем в коллекции, и изменитьselectedItem к этому, если это так.
  2. Запрашивает у пользователя, если он намеревался попытаться создать новый элемент.
  3. Делайте все, что вам нужно, чтобы получить информацию для создания этого элемента, независимо от того, отображается ли ондиалоговое окно формы или вообще ничего.
  4. Вставьте вновь созданный экземпляр в источник данных, с которым связан comboBox.
  5. Установите для свойства selectedItem в comboBox новый Item.
0 голосов
/ 30 июля 2009

Попробуйте изменить свойство DropDownStyle вашего ComboBox. Не уверен, что это даст вам то, что вы хотите, но это новое направление для поиска.

...