Приветствую всех.
Столкнулся с проблемкой, которую не могу решить, хотя могу обойти. В чём проблема… У меня данные хранятся в таблицах SQLight. Выбранные данные отображаются в таблицах treeView. id записей из БД сохраняются в iid строк таблиц treeView. Таким образом сохраняется связь между хранимыми данными и отображаемой выборкой. При добавлении данных (новых строк/записей) надо дать пользователю возможность выбора нового значения из списка уже существующих. Соответственно - Combobox. Пользователь выбирает нужное значение из выпадающего списка, а для записи в БД мне надо знать id этого значения. Надо выполнить обратный поиск в таблице, чтобы по значению найти его id. При этом надо учитывать условия, с которыми выполнялась выборка. Это крайне не удобно. И, даже, если мне удастся накрутить/наворотить логику обратного поиска с учётом всех условий предыдущих выборок, я не могу быть уверен что будет найден правильный id (местами значения могут повторяться). К сожалению, Combobox, в отличие от treeView, не позволяет привязать к отображаемым значениям свои индексы или тэги. Поэтому я пошёл таким путём: собираю в строку id значения и само значение и в таком виде даю пользователю для выбора. Выглядит не очень красиво, но: собрать строку не сложно; пользователь понимает что он выбирает; после выбора сплитануть строку и получить из неё id - тоже без проблем.
Буду рад, если кто-то сможет подсказать более красивое решение, как сохранить однозначное соответствие между значениями в списке выбора Combobox и записями в БД, без создания временных дополнительных виртуальных таблиц или словарей.