private async Task<bool> TryDisplayAsPopup(IViewModel viewModel, EventHandler<UICompletedEventArgs> completedProc, StackLayout contentLayout)
{
bool result = false;
var currentPage = Application.Current.CurrentPage() as ContentPage;
if (currentPage != null)
{
_callbacks[currentPage] = new Tuple<IViewModel, EventHandler<UICompletedEventArgs>>(viewModel, completedProc);
// TODO: Look for the top must popup layout inactive
var popupLayout = currentPage.Content as PopupLayout;
if (popupLayout != null && !popupLayout.IsPopupActive)
{
currentPage.BackButtonPressed += OnBackButtonPressed;
contentLayout.HeightRequest = contentLayout.Children[0].HeightRequest + contentLayout.Children[1].HeightRequest;
contentLayout.WidthRequest = contentLayout.Children[0].WidthRequest;
result = true;
await popupLayout.ShowPopup(contentLayout);
}
}
return result;
}