void CellEdited(object o, Gtk.EditedArgs args) { Gtk.TreeIter iter; if (!store.GetIterFromString(out iter, args.Path)) { return; } var node = (ResXNode)store.GetValue(iter, 0); if (o == crtName) { // We can't remove a node's name, nor can we duplicate it if (args.NewText == string.Empty || names.Contains(args.NewText)) { return; } node.Name = args.NewText; } else if (o == crtValue) { try { node.Value = Convert.ChangeType(args.NewText, node.Value.GetType()); } catch { return; } } else if (o == crtComment) { node.Comment = args.NewText; } if (node == placeholder) { if (node.Name == string.Empty) { return; } Data.Nodes.Add(node); AddPlaceholder(); } // TODO: Maybe only do it on user save? treeView.ColumnsAutosize(); Data.WriteToFile(); }