Используйте ComboBox или ListBox в качестве индекса формы и привяжите другие элементы управления к SelectedItem списка - PullRequest
0 голосов
/ 13 ноября 2018

Это на самом деле очень простой и основной вопрос, и я прошу прощения, если это повторный вопрос (конечно, это должно быть так), но я нигде не могу найти простой ответ и, наконец, добавляю полотенце.

Я создал приложение Windows Forms в Visual Studio '17, создал источник данных на основе таблицы сервера SQL и добавил связанный список. Все идет нормально. Используя функцию перетаскивания из панели DataSource / DataSet, я заполняю несколько полей в текстовых полях и привязываюсь к данным. Используя автоматически добавленный навигатор привязки данных, я могу прокручивать таблицу, и все элементы управления обновляются, поэтому я знаю, что все они правильно связаны.

Теперь все, чего я хочу добиться - это обновить элементы управления при изменении значения, выбранного в выпадающем списке. Но они этого не делают. Из того, что я прочитал, я предполагаю, что каким-то образом поле со списком должно предупредить, что текущая запись источника данных нуждается в обновлении? Если так, как я могу получить его, чтобы обновить до значения ключа из выпадающего списка? А может это совершенно неправильно? Я надеялся, что VS сделает свое волшебство для связанных элементов управления, чтобы мне не приходилось обрабатывать каждое событие изменения комбо, запрашивать базу данных, а затем обновлять каждый элемент управления.

Я думал, что это будет простая задача; учитывая, что это очень просто, конечно, будут прямые объяснения, но либо обсуждаемые проблемы являются более сложными, либо обсуждается лабиринт процедур связывания данных и объектов. Это своего рода побочный эффект от моего обычного .net и SQL-кодирования, поэтому я надеюсь, что один или два простых обработчика событий - это все, что нужно.

1 Ответ

0 голосов
/ 14 ноября 2018

Если вы хотите настроить элемент управления списком, например ComboBox или ListBox, чтобы он действовал как индекс для данных:

  • Установите для его свойства DataSource то же значение DataSource, к которому привязаны другие элементы управления.
  • Установите DisplayMember для отображения в поле со списком, но вам не нужно для установки ValueMember.
  • Не трогай (DataBindings). Вам не нужно устанавливать привязку данных.
* ** 1 022 тысяча двадцать-один * Пример

Если у вас есть productsBindingSource, это настройки для связанных элементов управления:

  • idTextBox → Привязки данных: Text свойство связано с Id свойство productsBindingSource
  • nameTextBox → Привязки данных: Name свойство связано с Name свойство productsBindingSource
  • priceTextBox → Привязки данных: Price свойство связано с Price свойство productsBindingSource

Тогда чтобы ComboBox действовал как индекс, это настройки для ComboBox:

  • DataSource свойство установлено на productsBindingSource
  • DisplayMember свойство установлено на Name
  • Не трогай (DataBindings). Вам не нужно устанавливать привязку данных.

Затем в результате, когда вы выбираете элемент из ComboBox, связанные элементы управления покажут выбранный элемент, и навигатор привязки также переместится:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...