Navigating menus in automation tests
Make parent a list of ancestors as a path to the item: 

new Item  { Name = "TestGranChild4", Path = {"Test", "TestChild2"} },


var menuItem = items.Where(x =&gt; x.Name == name);
menuItem.FirstOrDefault().Path.ForEach(a =&gt; app.tap(x=&gt;x.Marked(a)));
app.Tap(x =&gt; x.Marked(menuItem.FirstOrDefault().Name));