Exemplo n.º 1
0
        public InteractableItemViewModel(HostedLayoutItem model)
            : base(model)
        {
            _clearContentCommand = new RelayCommand(OnClearContent);
            _importStringCommand = new RelayCommand(OnImportString);

            var ii = ModelAs <InteractableItem>();

            if (ii.ContentAreaTarget != null)
            {
                _contentAreaTarget = (ContentAreaViewModel)ViewModelMapper.GetViewModel(ii.ContentAreaTarget);
                if (_contentAreaTarget == null)
                {
                    _contentAreaTarget = new ContentAreaViewModel(ii.ContentAreaTarget);
                }
            }

            if (ii.ItemTarget != null)
            {
                _itemTarget = (ContentItemViewModel)ViewModelMapper.GetViewModel(ii.ItemTarget);
                if (_itemTarget == null)
                {
                    _itemTarget = ContentItemViewModel.CreateItem(ii.ItemTarget);
                }
            }

            if (ii.PageTarget != null)
            {
                _pageTarget = (HostedLayoutPageViewModel)ViewModelMapper.GetViewModel(ii.PageTarget);
                if (_pageTarget == null)
                {
                    _pageTarget = new HostedLayoutPageViewModel(ii.PageTarget);
                }
            }
        }
        public HostedLayoutViewModel(ContentItem model)
            : base(model)
        {
            AddPage    = new RelayCommand(OnAddPage);
            RemovePage = new RelayCommand(OnRemovePage, CanExecuteRemovePage);


            var hostedLayout = ModelAs <HostedLayout>();
            var lst          = new List <HostedLayoutPageViewModel>();

            foreach (var x in hostedLayout.Pages)
            {
                var vm = (HostedLayoutPageViewModel)ViewModelMapper.GetViewModel(x);
                if (vm == null)
                {
                    vm = new HostedLayoutPageViewModel(x);
                }

                vm.Parent = this;
                lst.Add(vm);
            }

            foreach (var x in lst)
            {
                x.RelinkBrokenPageReferences(lst);
            }

            _pages = new ViewModelCollection <HostedLayoutPageViewModel, HostedLayoutPage>(hostedLayout.Pages, lst);
        }
        private void OnAddPage(object obj)
        {
            var page = new HostedLayoutPageViewModel(new HostedLayoutPage(ModelAs <HostedLayout>())
            {
                Name         = $"New Page {_pages.Count + 1}",
                CanvasWidth  = 3840,
                CanvasHeight = 2160
            });

            _pages.Add(page);
            SelectedPage = page;
        }