public SketchView(SketchViewModel viewModel, UiState uiState, IEventAggregator eventAggregator, IUnityContainer container, ISnapper snapper, ILoggerFacade logger = null) : this() { this.logger = logger ?? new EmptyLogger(); DataContext = viewModel; viewModel.PropertyChanged += OnViewModelPropertyChanged; this.viewModel = viewModel; this.duplicateEditorFactory = new DuplicateEditorFactory(this); this.snapper = snapper; sketchModellingView = container.Resolve <SketchModellingView>( new DependencyOverride <SketchModellingViewModel>(viewModel.SketchModellingViewModel)); root3d.Children.Add(sketchModellingView); sketchImageView = container.Resolve <SketchImageView>( new DependencyOverride <SketchImageViewModel>(viewModel.SketchImageViewModel)); Grid.SetRow(sketchImageView, 2); sketchImageView.Margin = vpRoot.Margin; root.Children.Insert(2, sketchImageView); newPrimitiveDragStrategy = new PrimitiveDragStrategy(uiState, sketchModellingView, snapper); snappedDragStrategy = new SnappedDragStrategy(uiState, duplicateEditorFactory.Create(), eventAggregator); curveDragStrategy = new CurveDragStrategy(uiState, sketchImageView, selectionRectangle); assignDragStrategy = new AssignDragStrategy(uiState, primitiveCurvesRoot, sketchImageView, eventAggregator); eventAggregator.GetEvent <PrimitiveCurvesChangedEvent>().Subscribe(OnPrimitiveCurvesChanged); }
public PrimitiveDragStrategy(UiState uiState, SketchModellingView sketchModellingView, ISnapper snapper) : base(uiState) { this.sketchModellingView = sketchModellingView; this.snapper = snapper; }