Je voudrais afficher une structure de répertoire en utilisant les widgets Gtk # à travers F #, mais j'ai du mal à comprendre comment traduire TreeViews en F #. Dire que j'avais une structure de répertoire qui ressemble à ceci:Comment créer un TreeView à plusieurs niveaux en utilisant F #?
Directory1
SubDirectory1
SubDirectory2
SubSubDirectory1
SubDirectory3
Directory2
Comment puis-je montrer cette structure d'arbre avec Gtk # widgets en utilisant F #?
EDIT:
gradbot WAS la réponse que j'espérais avec quelques exceptions. Si vous utilisez ListStore, vous perdez la possibilité d'étendre les niveaux, si vous utilisez à la place:
let musicListStore = new Gtk.TreeStore([|typeof<String>; typeof<String>|])
vous obtenez une mise en page avec des niveaux extensibles. Faire cela, cependant, rompt les appels à AppendValues de sorte que vous devez ajouter quelques indices pour le compilateur de savoir qui surcharge méthode à utiliser:
musicListStore.AppendValues (iter, [|"Fannypack" ; "Nu Nu (Yeah Yeah) (double j and haze radio edit)"|])
Notez que les colonnes sont passées explicitement comme un tableau.
Enfin, vous pouvez encore les niveaux de nid en utilisant le ListIter retourné par les valeurs Append
let iter = musicListStore.AppendValues ("Dance")
let subiter = musicListStore.AppendValues (iter, [|"Fannypack" ; "Nu Nu (Yeah Yeah) (double j and haze radio edit)"|])
musicListStore.AppendValues (subiter, [|"Some Dude"; "Some Song"|]) |> ignore
+1, pour éditer votre question avec la réponse. C'est très wiki de vous. :) – gradbot