Я немного озадачен тем, как я могу оптимизировать свою программу, используя DataBindings. Моя программа использует несколько связанных объектов Linq2SQL, хранящих данные. Все объекты ORM хранятся в иерархии. Во втором проекте GUI я показываю эти данные в некоторых полях Text и Combo Box.
Иерархия структуры данных выглядит следующим образом:
JobManagerсодержит словарьJobs- Каждое задание содержит словарь
Jobitems - Каждый Jobitem содержит ровно один
Article
Job, Jobitem и Article — это объекты Linq2SQL, представляющие ORM.
Теперь у меня есть графический интерфейс с двумя представлениями списка и панелью вкладок. На панели вкладок отображаются свойства заданий, заданий и статей, а также предлагается возможность изменять задания и задания. Графический интерфейс должен вести себя следующим образом:
- Когда в первом ListView выбрано
Job, связанные элементы задания будут отображаться во втором ListView, а подробная информация о задании отображается на панели вкладок. - Когда во втором ListView выбрано
Jobitem, сведения об элементе задания и сведения о статье отображаются на панели вкладок, но редактировать можно только информацию об элементе задания. - Когда изменения внесены, пользователь должен их намеренно сохранить. В противном случае изменения следует отменить и не синхронизировать с базой данных.
Как я могу добиться такого поведения с помощью DataBinding?
В частности, могу ли я один раз привязать полную коллекцию к одному текстовому полю и перемещаться по его положению, продиктованному выбором в ListViews? Или мне нужно добавлять и удалять отдельные привязки данных для каждого задания для каждого выбора, который делает пользователь?