Доброго дня, уважаемые гуру разработки
Пишу небольшой менеджер задач и пытаюсь использовать для этого MonoDevelop.
Подскажите, пожалуйста, как можно реализовать работу с переключателями(check box) в Mono? По документации на сайте нашел как можно создать сворачиваемые списки для TreeView. В документации указано, что ячейку TreeView можно отрендерить как CellRendererToggle (Used to display a check box), но больше никаких описаний по работе с этим типом не могу найти. Хочу реализовать возможность устанавливать и сбрасывать статус переключателя и дальше менять данные в модели. Сейчас получилось лишь выводить столбик переключателей, но поменять их статус не знаю как
полный код проекта лежит на
https://github.com/veitsi/todonet
Сейчас список задач формирую так:
private void TreeInit ()
{
Gtk.TreeViewColumn taskColumn = new Gtk.TreeViewColumn ();
taskColumn.Title = "Task description";
Gtk.CellRendererText taskTextCell = new Gtk.CellRendererText ();
taskColumn.PackStart (taskTextCell, true);
Gtk.TreeViewColumn statusColumn = new Gtk.TreeViewColumn ();
statusColumn.Title = "status";
Gtk.CellRendererToggle statusCell = new Gtk.CellRendererToggle ();
statusColumn.PackStart (statusCell, true);
tree.AppendColumn (taskColumn);
tree.AppendColumn (statusColumn);
taskColumn.AddAttribute (taskTextCell, "text", 0);
statusColumn.AddAttribute (statusCell, "text", 1);
}
public void TreeBuild (ToDoList todo)
{
//textview.Buffer.Text = "Загрузили список задач\n";
this.TreeInit ();
Gtk.TreeStore todoListStore = new Gtk.TreeStore (typeof(string), typeof(string));
Gtk.TreeIter iter;
foreach (Task t in todo.tasks) {
iter=todoListStore.AppendValues (t.text);
if (t.subs.Count > 0) {
foreach (SubTask s in t.subs)
todoListStore.AppendValues (iter, s.text, "");
}
}
tree.Model = todoListStore;
}
окно программы выглядит так