No entiendo bien para qué llenar un dropdownlist de esa manera :P pero de todas maneras, no lo veo imposible (aunque poco práctico).
El diseño de Menus, cuando los hago en una base de datos y no en un sitemap o archivo xml anexo, lo trato de hacer sencillo y con posibilidad de crecimiento, aplicando una tabla similar a ésta:
Tabla Menu
idMenu
nombreMenu
funcion
menuPadre
Es el modelo más simplificado (por que puede crecer a muchas tablas más) pero que tal vez te pueda servir.
Piensa cada registro de Menu como una categoría, tendrías su id, su nombre, la función/página web/formulario/método que invoca, y finalmente, el id del menú al que corresponde (si es nulo, un menú/categoría principal).
Luego de esto, simplemente tendrías que llamar a la tabla, llenar el DataSet, y utilizar finalmente el DataTable que obtienes de éste para llenar el DropDownList.
Lo que no entiendo bien, para poder ayudarte más, es el formato de cada Item en el DrowDownList.
¿Quieres concatenar el texto del Menu Principal (Archivo) y sus hijos (Abrir, Cerrar, etc.) en un Item?
Tampoco entiendo a que te refieres con mostrar como árbol un menú en un DropDownList, que por definición es secuencial, salvo que sea algo como:
Código HTML:
Archivo
-- Abrir
-- Cerrar
Edición
-- Copiar
-- Cortar
-- Pegar