private async Task OnSelectedIndexChangedAsync() { int index = ViewModel.Step.SelectedIndex; var length = ViewModel.Step.Items.Length; if (index == length) { Close(); return; } var item = ViewModel.Step.Items[index]; Logger.LogTrace("Entering {0}", item.Name); item.IsSelected = true; ViewModel.Step.CanGoBack = CanGoBack(index); var page = PageContainer.GetPage(item.Name); frame.Navigate(page); var controller = await ControllerContainer.GetControllerAsync(item.Name); await controller.EnterStepAsync(); }