Gtk#TreeView确定选择了哪个项目

时间:2016-05-03 19:01:51

标签: c# treeview gtk#

我是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;
}

1 个答案:

答案 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
}