В настоящее время я работаю с mono и gtk #.
Относительно TreeView есть это Tutorial .
Я хочу добиться того же, что представлено в разделе «Управление использованием модели»
Итак, у меня есть класс песни и методы визуализации для отображения исполнителя и заголовка.
Но я хочу отобразить его через TreeStore вместо ListStore. Чтобы у меня был Rootnode для каждой буквы, и под этим узлом должны отображаться все исполнители, начинающиеся с этой буквы.
Моя проблема, как я могу добавить эти RootNode в TreeStore? И куда мне их добавить?
songs.Add(new Song("Dancing Djs vs. Roxette", "Fading like a flower"));
songs.Add(new Song("Xaiver","give me the right"));
songs.Add(new Song("Daft Punkt","Technologic"));
TreeStore musicListStore = new TreeStore(typeof(Song));
foreach (var s in songs)
{
musicListStore.AppendValues(s);
}
treeview1.Model = musicListStore;
treeview1.AppendColumn("Artist", new CellRendererText(),new TreeCellDataFunc(RenderArtistName));
treeview1.AppendColumn("Title", new CellRendererText(),new TreeCellDataFunc(RenderSongTitle));
private void RenderArtistName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
{
Song s = model.GetValue(iter,0) as Song;
(cell as CellRendererText).Text = s.Artist;
}
private void RenderSongTitle(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
{
Song s = model.GetValue(iter,0) as Song;
(cell as CellRendererText).Text = s.Title;
}
Итак, я хочу добиться, чтобы для каждой буквы были корневые узлы, а под каждой буквой должны быть перечислены все исполнители, начинающиеся с этой буквы.
Моя проблема в том, как добавить букву в TreeStore, а также как узнать, куда вставить каждую песню.
Вот снимок экрана, на котором я хотел бы, чтобы он выглядел (мне не разрешено загружать их напрямую. Поэтому я должен был использовать внешний хостинг. Sry):
Скриншот