Esempio n. 1
0
 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);
            }
        }