internal void ShowNode (Node n)
{
if (n == null)
return;
if (!nodeToWrapper.ContainsKey (n))
ShowNode (n.Parent);
var item = nodeToWrapper [n];
outlineView.ExpandItem (item);
// Focus the last child, then this child to ensure we show as much as possible
if (n.Nodes.Count > 0)
ScrollToVisible ((Node) n.Nodes [n.Nodes.Count-1]);
var row = ScrollToVisible (n);
ignoreSelect = true;
outlineView.SelectRows (new NSIndexSet (row), false);
ignoreSelect = false;
}