Я хотел бы заполнить Treeview.Лучшая практика Treeview, населяющая различные виды объектов
Вот что я имею в БД:
стол Box BoxID BOXNAME
стол Книга: BookID BookName BoxID (Ф.К. Box.BoxID)
таблица Глава: ГлаваID Глава Название BookID (fk Book.BookID)
Как вы знаете, древовидная структура состоит из объекта treenode. Объект treenode имеет свойство text и свойство тега. Свойство «текст» - это текст, который он отображает на экране для этого узла, а «тег» - это «скрытое» значение (обычно используется для идентификации узла).
Так что в моем случае; поля, заканчивающиеся на ID, будут использоваться в свойстве «tag», а поля, заканчивающиеся на Name, будут использоваться в свойстве «text».
пример: поэтому для книги; Я буду использовать поле BookID для свойства «tag» и «BookName» для свойства «text».
примечание: я использую dbml, поэтому у меня есть объект Book, объект Box и объект Chapter, и я использую linq для их получения от дБ.
Итак, мой вопрос: Какова наилучшая практика для создания этого дерева?
У меня есть решение, но это действительно уродливо, потому что похоже, что я дублирую код. Проблема в том, что значения, которые мне нужно извлечь для свойств текста и тега, идентифицируются по имени полей differents в db
Итак, для уровня книги мне нужно получить поле BookID, чтобы заполнить свойство тега моего узел; для уровня ящика мне нужно, чтобы поле BoxID заполнило свойство тега, ...
Как я могу сделать своего рода общий способ сделать это?
Я надеюсь, что я сделал себе достаточно ясно, не стесняйтесь задавать мне вопросы :)
Thx заранее
Я получаю список ящиков с запросом linq (dbml). Я получаю Список Treenode tnBox = null; Treenode tnBook = null; foreach (Box b in MyListofBox) { tnBox = new TreeNode(); tnBox.tag = b.BoxID; tnBox.text = b.BoxName; Список MyListofBook = getMyListofBookByBoxID (b.BoxID) Еогеасп (Книга бух в MyListofBook) { tnBook = новый TreeNode(); tnBook .tag = boo.BookID; tnBook .text = boo.BookName; tnBox.nodes.add (tnBook); } mytreeview.nodes.add (tnBox); } } –
GillouX