我是Gtk的新手,我正在使用Gtk#。我正在使用TreeView组件,我想知道用户何时选择新条目。
我尝试过使用TreeView.Selection.SelectFunction。但是,在进行选择之前会调用它,这不是我想要的。我想知道用户刚刚选择了什么,而不是之前选择的内容。我该如何完成这项工作?
由于
这就是我目前所拥有的
catalogTreeView.Selection.SelectFunction = CategorySelected;
bool CategorySelected(Gtk.TreeSelection selection, Gtk.TreeModel model, Gtk.TreePath path, bool abool) {
TreeIter iter;
if (selection.GetSelected (out model, out iter)) {
Console.WriteLine("abool = " + abool);
Console.WriteLine("Path of selected row = {0}", model.GetPath (iter));
Console.WriteLine(model.GetValue (iter, 0));
}
return true;
}
答案 0 :(得分:0)
您需要ButtonPressEvent的处理程序,您可以在其中使用treeview.Selection.GetSelected()操作来检索所选模型和iter。 NB。您需要将GLib.ConnectBeforeAttribute属性添加到此事件处理程序,并将事件添加到树视图的事件列表中。 E.g。
treeview.Events |= EventMask.ButtonPressMask;
treeview.ButtonPressEvent += YourOnButtonPressEvent;
...
[GLib.ConnectBeforeAttribute]
protected void YourOnButtonPressEvent (object o, ButtonPressEventArgs args)
{
// code here
}