public void ShowScreen(ScreenType type) { if (FocusedType == type) { return; } if (type == ScreenType.EMPTY) { Focused.Hide(); Focused = null; FocusedType = ScreenType.EMPTY; return; } Focused?.Hide(); if (!cachedScreens.ContainsKey(type)) { createScreen(type); } FocusedType = type; Focused = cachedScreens[type]; Focused?.Show(); }