Gtk# TreeView определить, какой элемент выбран

Я новичок в 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 ответ

Решение

Вы хотите обработчик для ButtonPressEvent, в котором вы можете использовать операцию treeview.Selection.GetSelected(), чтобы получить выбранную модель и ее текущую версию. NB. Вам необходимо добавить атрибут GLib.ConnectBeforeAttribute в этот обработчик событий, а также добавить событие в список событий для древовидного списка. Например

treeview.Events |= EventMask.ButtonPressMask;
treeview.ButtonPressEvent += YourOnButtonPressEvent;

...

[GLib.ConnectBeforeAttribute]
protected void YourOnButtonPressEvent (object o, ButtonPressEventArgs args)
{
    // code here
}
Другие вопросы по тегам