[Gtk-sharp-list] TreeCellDataFunc not getting pinged

aybiss aaron at hardwarehookups.com.au
Wed Apr 11 18:51:35 EDT 2007

Adam Tauno Williams-2 wrote:
> It might be easier to just come up with a different demo;  this is all
> intertwined quite a bit -  http://code.google.com/p/consonance/
> Maybe this is enough....

Well, I now have this:

using System;
using Gtk;
using Gdk;

public class Task /* Bogus Task Object */
    public Task() { }
    public int ObjectId { get { return 1000; } }
    public bool IsToDo { get { return true; } }

public class Test
    private Label label = null;
    private int counter = 0;
    private bool configurationFailed = false;
    private Gtk.Window wnd;
    // Want to display a dialog, but can't.
    public static void Main()
        if (!GLib.Thread.Supported) GLib.Thread.Init();

        Test t = new Test();



    public Test()
        wnd = new Gtk.Window("Test");
        wnd.Destroyed += new EventHandler(wnd_Destroyed);

        Gtk.TreeViewColumn column;
        Gtk.CellRendererText cell;
        TreeView treeView;
        TreeModelFilter filter;
        ListStore taskStore;

        taskStore = new ListStore(typeof(Task));
        taskStore.AppendValues(new Task());
        taskStore.AppendValues(new Task());
        taskStore.AppendValues(new Task());
        taskStore.AppendValues(new Task()); 

        treeView = new TreeView();
        filter = new TreeModelFilter(taskStore, null);
        filter.VisibleFunc = new Gtk.TreeModelFilterVisibleFunc(ToDoFilter);
        treeView.Model = filter;
        column = new Gtk.TreeViewColumn();
        column.Title = "Object Id";
        cell = new Gtk.CellRendererText();
        column.SetCellDataFunc(cell, new
        column.PackStart(cell, true);



    protected virtual void RenderObjectId(
            Gtk.TreeViewColumn _column,
            Gtk.CellRenderer _cell,
            Gtk.TreeModel _model,
            Gtk.TreeIter _iter)
        Task task;

        Console.WriteLine("RenderObjectId invoked");
        task = (Task)_model.GetValue(_iter, 0);
        (_cell as Gtk.CellRendererText).Text = task.ObjectId.ToString();

    private bool ToDoFilter(Gtk.TreeModel _model, Gtk.TreeIter _iter)
        Task task;
        Console.WriteLine("Filtering task for ToDo list");
        task = (Task)_model.GetValue(_iter, 0);
        if (task == null) return false;
        if (task.IsToDo) return true;
        return false;

    void wnd_Destroyed(object sender, EventArgs e)

And what I see is a list of empty cells.
View this message in context: http://www.nabble.com/TreeCellDataFunc-not-getting-pinged-tf3548034.html#a9950017
Sent from the Mono - Gtk# mailing list archive at Nabble.com.

More information about the Gtk-sharp-list mailing list