@vetalmatitskiy
testing engineer

Как работать с переключателями для виджета TreeView в MonoDevelop?

Доброго дня, уважаемые гуру разработки
Пишу небольшой менеджер задач и пытаюсь использовать для этого 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;
	}

окно программы выглядит так
e8ea01823e3b4f85b192370fee753c87.png
  • Вопрос задан
  • 312 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы