我有 2 列的 nodeview,需要遍历 a 列中的值,并且单元格中的值匹配条件,我需要询问用户要做什么,并在 b 列中写入用户输入。
我试过
for (int i = 0; i < nodeview1.Model.IterNChildren(); i++)
{
//var x = nodeview1.Columns [0].ToString ();
//var x = nodeview1.Columns [i].ToString ();
//var x = nodeview1.Columns [0].Data.Values.ToString ();
}
但无法从单元格中获取任何值...
有人可以帮忙吗?
最佳答案
这是因为您在 View 上迭代,而要获取值您应该在模型 上迭代。要迭代模型,您可以使用如下代码:
Gtk.TreeModel model = nodeview1.Model;
Gtk.TreeIter iter;
if (model.GetIterFirst(out iter)) {
do {
Console.WriteLine("COLUMN 1: " + model.GetValue(iter, 0));
Console.WriteLine("COLUMN 2: " + model.GetValue(iter, 1));
} while (model.IterNext(ref iter));
}
if
是必需的,因为如果模型为空,GetIterFirst
将返回 false
。然后使用它并循环直到 IterNext
返回 false。
还要注意如何在模型上使用 GetValue
来获取与 Gtk.TreeIter
的行“指针”和列(索引从0).
关于c# - 如何循环遍历 gtk 中的节点 View 行#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27446572/