public void OnNodesChanged(BaseItem item) { if (NodesChanged != null) { var path = GetPath(item.ParentItem); NodesChanged(this, new TreeModelEventArgs(path, new object[] { item })); } }
private TreePath GetPath(BaseItem item) { if (item == null) return TreePath.Empty; else { Stack<object> stack = new Stack<object>(); while (item != null) { stack.Push(item); item = item.ParentItem; } return new TreePath(stack.ToArray()); } }