public static void InitializeView(object view, object viewModel, object parameter, object parentViewModel, IDocumentOwner documentOwner = null) { if (documentOwner is DependencyObject) { documentOwner = DocumentOwnerWrapper.Create(documentOwner); } if (viewModel != null) { ViewModelInitializer.SetViewModelProperties(viewModel, parameter, parentViewModel, documentOwner); view.With(x => x as FrameworkElement).Do(x => x.DataContext = viewModel); view.With(x => x as FrameworkContentElement).Do(x => x.DataContext = viewModel); view.With(x => x as ContentPresenter).Do(x => x.Content = viewModel); return; } if (view is DependencyObject) { ViewModelInitializer.SetViewModelProperties((DependencyObject)view, parameter, parentViewModel, documentOwner); } }
public static void InitializeView(object view, object viewModel, object parameter, object parentViewModel, IDocumentOwner documentOwner = null) { if (documentOwner is DependencyObject) { documentOwner = DocumentOwnerWrapper.Create(documentOwner); } if (viewModel != null) { if (parameter != null) { viewModel.With(x => x as ISupportParameter).Do(x => x.Parameter = parameter); } if (parentViewModel != null) { viewModel.With(x => x as ISupportParentViewModel).Do(x => x.ParentViewModel = parentViewModel); } if (documentOwner != null) { viewModel.With(x => x as IDocumentContent).Do(x => x.DocumentOwner = documentOwner); } view.With(x => x as FrameworkElement).Do(x => x.DataContext = viewModel); view.With(x => x as ContentPresenter).Do(x => x.Content = viewModel); return; } if (!(view is DependencyObject)) { return; } if (ViewModelExtensions.NotSetParameter == ViewModelExtensions.GetParameter((DependencyObject)view) || parameter != null) { ViewModelExtensions.SetParameter((DependencyObject)view, parameter); } if (ViewModelExtensions.GetParentViewModel((DependencyObject)view) == null || parentViewModel != null) { ViewModelExtensions.SetParentViewModel((DependencyObject)view, parentViewModel); } if (ViewModelExtensions.GetDocumentOwner((DependencyObject)view) == null || documentOwner != null) { ViewModelExtensions.SetDocumentOwner((DependencyObject)view, documentOwner); } }