Exemplo n.º 1
0
 public static void SetViewModelProperties(DependencyObject view, object parameter, object parentViewModel, IDocumentOwner documentOwner)
 {
     if (view == null)
     {
         return;
     }
     if (ViewModelExtensions.NotSetParameter == ViewModelExtensions.GetParameter(view) || parameter != null)
     {
         ViewModelExtensions.SetParameter(view, parameter);
     }
     if (ViewModelExtensions.GetParentViewModel(view) == null || parentViewModel != null)
     {
         ViewModelExtensions.SetParentViewModel(view, parentViewModel);
     }
     if (ViewModelExtensions.GetDocumentOwner(view) == null || documentOwner != null)
     {
         ViewModelExtensions.SetDocumentOwner(view, documentOwner);
     }
 }
Exemplo n.º 2
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)
            {
                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);
            }
        }
Exemplo n.º 3
0
            void ViewPresenter_Loaded(object sender, RoutedEventArgs e)
            {
                if (VisualTreeHelper.GetChildrenCount(this) == 0)
                {
                    return;
                }
                var child           = VisualTreeHelper.GetChild(this, 0);
                var parameter       = ViewModelExtensions.GetParameter(this);
                var parentViewModel = ViewModelExtensions.GetParentViewModel(this);
                var documentOwner   = ViewModelExtensions.GetDocumentOwner(this);

                if (parameter != null)
                {
                    ViewModelExtensions.SetParameter((DependencyObject)child, parameter);
                }
                if (parentViewModel != null)
                {
                    ViewModelExtensions.SetParentViewModel((DependencyObject)child, parentViewModel);
                }
                if (documentOwner != null)
                {
                    ViewModelExtensions.SetDocumentOwner((DependencyObject)child, documentOwner);
                }
            }