Gtk# TreeView 判断哪个item被选中
Gtk# TreeView determine which item is selected
我是 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;
}
您需要 ButtonPressEvent 的处理程序,您可以在其中使用 treeview.Selection.GetSelected() 操作来检索选定的模型和 iter,因为您已经这样做了。注意。您需要将 GLib.ConnectBeforeAttribute 属性添加到此事件处理程序,并将该事件添加到树视图的事件列表中。例如
treeview.Events |= EventMask.ButtonPressMask;
treeview.ButtonPressEvent += YourOnButtonPressEvent;
...
[GLib.ConnectBeforeAttribute]
protected void YourOnButtonPressEvent (object o, ButtonPressEventArgs args)
{
// code here
}
我是 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;
}
您需要 ButtonPressEvent 的处理程序,您可以在其中使用 treeview.Selection.GetSelected() 操作来检索选定的模型和 iter,因为您已经这样做了。注意。您需要将 GLib.ConnectBeforeAttribute 属性添加到此事件处理程序,并将该事件添加到树视图的事件列表中。例如
treeview.Events |= EventMask.ButtonPressMask;
treeview.ButtonPressEvent += YourOnButtonPressEvent;
...
[GLib.ConnectBeforeAttribute]
protected void YourOnButtonPressEvent (object o, ButtonPressEventArgs args)
{
// code here
}