Отображение поля со списком Windows Form & значения не синхронизированы - PullRequest
0 голосов
/ 04 февраля 2019

Я разработал небольшое приложение, но столкнулся с этой проблемой, поэтому я начинаю с чистого листа, чтобы попытаться изолировать его.До сих пор я сделал очень простое приложение для Windows form (VS 2017), подключающееся к таблице данных SQL.На форме у меня есть поле со списком для выбора строки таблицы, которая связана с набором данных.У меня он показывает номер заказа, и его значение имеет член в виде номера EntryID, как показано, который также является «выбранным значением».

Combo Box Data Settings

У меня также есть простое текстовое поле в форме, отображающее EntryID.

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

enter image description here

Перед выбором элемента, если я прокручиваю список с помощью селектора панели инструментов формы, значение текстового поля EntryID соответствует значению поля со списком, поэтому Ord40 выбирает последнюю строку набора данных (где EntryID = 1003).

Однако при выборе элемента порядок списка со списком изменяется.Например, после нескольких выборов я получаю:

enter image description here

Но если я выберу последний отображаемый элемент, «Ord 20», я still получить строку данных EntryID = 1003. Другими словами, хотя связанный набор данных не изменяется, комбинированный список скремблирует отображаемый элемент.Иными словами, если в выпадающем списке есть набор полей отображения и соответствующий набор полей значений, текст поля отображения не синхронизируется с базовым значением.Я надеюсь, что в этом есть смысл.Это прямо из коробки, без изменения кода в новом проекте, и я пробовал другие настройки в свойстве «выбранное значение».Любая помощь приветствуется.Джеймс

1 Ответ

0 голосов
/ 04 февраля 2019

Вы связываете SelectedValue из ComboBox с тем же источником данных, который используете в качестве источника данных элемента управления.Настройка DataSource предназначена только для отображения элементов в раскрывающемся списке.Установка SelecetdValue если для изменения значения привязанного свойства / столбца.

Вы никогда не захотите связывать SelectedValue с тем же источником данных, который используете для DataSource.

Просто в качестве примера, предполагая, что у вас есть следующие таблицы:

  • Product (Id, Name, CategoryId, Price)
  • Category (Id, Name)

Затем, если вы хотите показать ComboBox для CategoryId в форме редактирования Product,значение categoryIdComboBox должно быть:

  • DataSource: categoriesDataSource
  • DisplayMember: Name
  • ValueMember: Id
  • SelectedValue: productsBindigSource - CategoryId
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...