void Selection_Changed(object sender, EventArgs e)
{
//get selection
TreeIter iter;
TreeModel model;
if (!itemTree.Selection.GetSelected (out model, out iter))
return;
//update grid
object obj = model.GetValue (iter, 0);
grid.CurrentObject = obj;
//update previously selected iter's name
UpdateName (previousIter);
//update current selection so we can update
//name next selection change
previousIter = iter;
}