public static void DetailViewModelsPropertyChanged(BindableObject bindableObject, object oldValue, object newValue) { MasterDetailShellPage masterDetailShellPage = (MasterDetailShellPage)bindableObject; IEnumerable <IViewModel> oldViewModels = (IEnumerable <IViewModel>)oldValue; IEnumerable <IViewModel> newViewModels = (IEnumerable <IViewModel>)newValue; if (oldViewModels != null) { if (oldViewModels is ObservableCollection <IViewModel> ) { (oldViewModels as ObservableCollection <IViewModel>).CollectionChanged -= masterDetailShellPage.MasterDetailShellPage_CollectionChanged; } } if (newViewModels != null) { masterDetailShellPage.CreateDetailPage(); masterDetailShellPage.IsReady = false; if (newViewModels is ObservableCollection <IViewModel> ) { (newViewModels as ObservableCollection <IViewModel>).CollectionChanged += masterDetailShellPage.MasterDetailShellPage_CollectionChanged; } foreach (IViewModel viewModel in newViewModels) { masterDetailShellPage.AddView(viewModel); } } }
public static void MasterViewModelPropertyChanged(BindableObject bindableObject, object oldValue, object newValue) { MasterDetailShellPage masterDetailShellPage = (MasterDetailShellPage)bindableObject; IViewModel newViewModel = (IViewModel)newValue; if (newViewModel != null) { masterDetailShellPage.Master = ShellViewPage.Create(masterDetailShellPage.viewFactory.GetView(newViewModel)); } }