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; }