2014-12-12 3 views
1

У меня есть узел с двумя столбцами и мне нужно зацикливать значения в столбце a, а значение в ячейке соответствует условию, мне нужно спросить пользователя, что делать, и написать ввод пользователя в столбец b.Как зацикливать строки nodeview в gtk #

Я попытался с

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(); 
    } 

, но не может получить любое значение из ячейки ...

Может кто-то помочь с этим?

ответ

0

Это потому, что вы перебор на вид время, чтобы получить значение, которые вы должны перебирать на модели. Для того, чтобы перебирать на модели вы можете использовать код следующим образом:

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).

Смежные вопросы