C# 从代码中选择GTK Treeview项目

C# 从代码中选择GTK Treeview项目,c#,mono,treeview,gtk,gtk#,C#,Mono,Treeview,Gtk,Gtk#,在我将一些项目添加到GTK树视图后,我需要从代码中选择列表中的第一个项目,以触发TreeViewUrsorChanged事件,即:单击树视图项目时。我需要选择第一个treeview项目。但没有选择事件。 我用字符串填充树视图 liststore = new ListStore (typeof(string)); treeview1.Model = liststore; GtkTreeView中的选择逻辑分为自己的类。每个GtkTreeView都有自己的GtkTreeSele

在我将一些项目添加到GTK树视图后,我需要从代码中选择列表中的第一个项目,以触发TreeViewUrsorChanged事件,即:单击树视图项目时。我需要选择第一个treeview项目。但没有选择事件。 我用字符串填充树视图

    liststore = new ListStore (typeof(string));
    treeview1.Model = liststore;  

GtkTreeView中的选择逻辑分为自己的类。每个GtkTreeView都有自己的GtkTreeSelection,可通过gtk_tree_view_get_选择获得

完成gtk树选择后,您只需获取要选择行的gtk树,并调用gtk树选择。您还可以构建gtk路径,并使用gtk树选择路径选择该路径

如何获得GtkTreeIter或GtkTreePath取决于您。GtkListStore也是GtkTreeModel,并且。

您必须使用与Gtk.TreeView关联的Gtk.TreeSelection。要选择第一行,只需执行以下操作:

Gtk.TreeIter iter;
if (liststore.GetIterFirst(out iter))
    treeview1.Selection.SelectIter(iter);
下面是一个完整的示例,创建列表视图/模型,向selection changed事件添加信号处理程序,然后将第一行设置为selected:

var view = new Gtk.TreeView();
var cell = new Gtk.CellRendererText();
var col1 = new Gtk.TreeViewColumn();
col1.Title = "Column 1"
col1.PackStart(cell, true);
col1.AddAttribute(cell, "text", 0);

view.AppendColumn(col1);

var model = new Gtk.ListStore(typeof(string));
model.AppendValues("AAA");
model.AppendValues("BBB");
model.AppendValues("CCC");

view.Model = model;

// This is the selection changed handler: I use a lambda but
// it is as easy to use a delegate `Changed` is a standard C#
// event.
view.Selection.Changed += (sender, e) => {
    Console.WriteLine("SELECTION WAS CHANGED");
    Gtk.TreeIter selected;
    if (view.Selection.GetSelected(out selected)) {
        Console.WriteLine("SELECTED ITEM: {0}", model.GetValue(selected, 0)));
    }
};

Gtk.TreeIter iter;
if (model.GetIterFirst(out iter))
     view.Selection.SelectIter(iter);

谢谢,它选择了第一个项目,但未触发光标更改事件。我使用此事件在选择项目时运行代码。这不是正确的事件吗?您是否尝试过使用Gtk.TreeView.Selection.SelectionChanged事件?很抱歉,回复太晚,我正忙着做其他事情。没有这样的活动,请看活动在选择中,而不是在树视图中;您能告诉我如何获取所选行的索引吗?谢谢您的解释。但是我们正在寻找cIt中的特定内容,任何语言都是一样的。您需要为绑定集找到正确的方法名称,它们可能类似于select_iter,可能会有各种引用和输出。Mono文档网站上的、和页面应有助于。。。如果这些是GTK+的正确版本。