Going back with a Vengeance
CurrentItem = ItemList[ItemList.IndexOf(mi)];


can just be

CurrentItem = mi;


You could also use FirstOrDefault:

var item = ItemList.FirstOrDefault(i =&gt; i.Menu == Back[0].Menu);
if (item != null)
{
    CurrentItem = item;
}