private void Bind(MasterDetailPage masterDetailPage, IViewModel viewModel, ISideMenuViewModel menuViewModel) { Bind(masterDetailPage.Detail, viewModel); Bind(masterDetailPage.Master, menuViewModel); menuViewModel.PropertyChanged += (sender, e) => { if (e.PropertyName == VisualElement.IsVisibleProperty.PropertyName) { masterDetailPage.IsPresented = menuViewModel.IsVisible; } }; }
private void OnMenuVisibilityChanged(IViewModel viewModel, ISideMenuViewModel menuViewModel) { try { if (menuViewModel.IsVisible) { menuViewModel.BecameVisible(); } else { menuViewModel.BecameInvisible(); } } catch (Exception e) { if (!viewModel.HandleException(e, () => OnMenuVisibilityChanged(viewModel, menuViewModel), () => OnCancel(viewModel))) { throw; } } }