[Gtk-sharp-list] How do I update all the CellRenderers in a column when one value in the model changes?

Peter Johanson peter at peterjohanson.com
Tue Feb 2 15:17:59 EST 2010

Typically for a single row, you would do something like:

list_store.EmitRowChanged (path, iter);

And that would trigger the TreeView to refresh that row. For updating
*every* row, as a fallback you could at least loop the store and emit
the row changed event.

Alternately, a treeview.QueueDraw (); might be sufficient to cause the
whole Gtk.TreeView to redraw, although that's fairly "brute force"


On Tue, Feb 02, 2010 at 03:13:46PM -0500, Matthew Pirocchi wrote:
>    I have a TreeView whose model is a list of Tags. Each tag has two
>    properties: Active (bool) and Name (string). There are two columns in
>    the treeview: a column of CellRendererToggles for Active, and
>    CellRendererTexts for Name. I use information about which tags are
>    active to filter what rows are shown in another TreeView.
>    One of the tags is called "All Tags". When this tag is Active, I want
>    to disable the checkbox for all the other tags (since it doesn't matter
>    whether they are active or not). So in the render func for the
>    checkbox, I set the CellRendererToggle to Sensitive = !allTags.Active
>    and Activatable = !allTags.Active, if the Tag in the cell is not
>    allTags. However, these changes do not display until I mouse-over the
>    cell.
>    How do I change Active and Sensitivity for multiple
>    CellRendererToggles, and have the changes display immediately?

> _______________________________________________
> Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/gtk-sharp-list


More information about the Gtk-sharp-list mailing list