/// <summary> /// This WorkspaceView will be supporting multiple WorkspaceViewModel /// E.g. Home Workspace, Custom Workspaces /// /// Handler for the DataContextChangedEvent. Handles registration of event listeners. /// Called during switching of workspace. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void dynWorkspaceView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { // Remove before adding registration of event listener to prevent multiple registration // to the same WorkspaceViewModel // Remove registration of event listener if (e.OldValue != null) { WorkspaceViewModel oldViewModel = (WorkspaceViewModel)e.OldValue; oldViewModel.CurrentOffsetChanged -= new PointEventHandler(vm_CurrentOffsetChanged); oldViewModel.ZoomChanged -= new ZoomEventHandler(vm_ZoomChanged); oldViewModel.RequestZoomToViewportCenter -= new ZoomEventHandler(vm_ZoomAtViewportCenter); oldViewModel.RequestZoomToViewportPoint -= new ZoomEventHandler(vm_ZoomAtViewportPoint); oldViewModel.RequestZoomToFitView -= new ZoomEventHandler(vm_ZoomToFitView); oldViewModel.RequestCenterViewOnElement -= new NodeEventHandler(CenterViewOnElement); oldViewModel.RequestNodeCentered -= new NodeEventHandler(vm_RequestNodeCentered); oldViewModel.RequestAddViewToOuterCanvas -= new ViewEventHandler(vm_RequestAddViewToOuterCanvas); oldViewModel.WorkspacePropertyEditRequested -= VmOnWorkspacePropertyEditRequested; oldViewModel.RequestSelectionBoxUpdate -= VmOnRequestSelectionBoxUpdate; } // Adding registration of event listener ViewModel.CurrentOffsetChanged += new PointEventHandler(vm_CurrentOffsetChanged); ViewModel.ZoomChanged += new ZoomEventHandler(vm_ZoomChanged); ViewModel.RequestZoomToViewportCenter += new ZoomEventHandler(vm_ZoomAtViewportCenter); ViewModel.RequestZoomToViewportPoint += new ZoomEventHandler(vm_ZoomAtViewportPoint); ViewModel.RequestZoomToFitView += new ZoomEventHandler(vm_ZoomToFitView); ViewModel.RequestCenterViewOnElement += new NodeEventHandler(CenterViewOnElement); ViewModel.RequestNodeCentered += new NodeEventHandler(vm_RequestNodeCentered); ViewModel.RequestAddViewToOuterCanvas += new ViewEventHandler(vm_RequestAddViewToOuterCanvas); ViewModel.WorkspacePropertyEditRequested += VmOnWorkspacePropertyEditRequested; ViewModel.RequestSelectionBoxUpdate += VmOnRequestSelectionBoxUpdate; ViewModel.Loaded(); outerCanvas.Children.Remove(zoomAndPanControl); zoomAndPanControl = new ZoomAndPanControl(DataContext as WorkspaceViewModel); Canvas.SetRight(zoomAndPanControl, 10); Canvas.SetTop(zoomAndPanControl, 10); Canvas.SetZIndex(zoomAndPanControl, 8000); zoomAndPanControl.Focusable = false; outerCanvas.Children.Add(zoomAndPanControl); }
/// <summary> /// Handler for the DataContextChangedEvent. Hanndles registration of event listeners. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void dynWorkspaceView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { ViewModel.CurrentOffsetChanged += new PointEventHandler(vm_CurrentOffsetChanged); ViewModel.ZoomChanged += new ZoomEventHandler(vm_ZoomChanged); ViewModel.RequestZoomToViewportCenter += new ZoomEventHandler(vm_ZoomAtViewportCenter); ViewModel.RequestZoomToViewportPoint += new ZoomEventHandler(vm_ZoomAtViewportPoint); ViewModel.RequestZoomToFitView += new ZoomEventHandler(vm_ZoomToFitView); ViewModel.RequestCenterViewOnElement += new NodeEventHandler(CenterViewOnElement); ViewModel.RequestNodeCentered += new NodeEventHandler(vm_RequestNodeCentered); ViewModel.RequestAddViewToOuterCanvas += new ViewEventHandler(vm_RequestAddViewToOuterCanvas); ViewModel.WorkspacePropertyEditRequested -= VmOnWorkspacePropertyEditRequested; ViewModel.WorkspacePropertyEditRequested += VmOnWorkspacePropertyEditRequested; ViewModel.RequestSelectionBoxUpdate += VmOnRequestSelectionBoxUpdate; ViewModel.Loaded(); outerCanvas.Children.Remove(zoomAndPanControl); zoomAndPanControl = new ZoomAndPanControl(DataContext as WorkspaceViewModel); Canvas.SetRight(zoomAndPanControl, 10); Canvas.SetTop(zoomAndPanControl, 10); Canvas.SetZIndex(zoomAndPanControl, 8000); zoomAndPanControl.Focusable = false; outerCanvas.Children.Add(zoomAndPanControl); }
void dynWorkspaceView_Loaded(object sender, RoutedEventArgs e) { zoomAndPanControl = new ZoomAndPanControl(DataContext as WorkspaceViewModel); Canvas.SetRight(zoomAndPanControl, 10); Canvas.SetTop(zoomAndPanControl, 10); Canvas.SetZIndex(zoomAndPanControl, 8000); zoomAndPanControl.Focusable = false; outerCanvas.Children.Add(zoomAndPanControl); /* // Add EndlessGrid endlessGrid = new EndlessGrid(outerCanvas); selectionCanvas.Children.Add(endlessGrid); zoomBorder.EndlessGrid = endlessGrid; // Register with ZoomBorder // Binding for grid lines HitTest and Visibility var binding = new Binding() { Path = new PropertyPath("DataContext.FullscreenWatchShowing"), Converter = new InverseBoolToVisibilityConverter(), Mode = BindingMode.OneWay, }; binding.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(TabControl), 1); endlessGrid.SetBinding(UIElement.VisibilityProperty, binding);*/ //============ //LoadCursorState(); //============ Debug.WriteLine("Workspace loaded."); DynamoSelection.Instance.Selection.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(Selection_CollectionChanged); ViewModel.DragSelectionStarted += ViewModel_DragSelectionStarted; ViewModel.DragSelectionEnded += ViewModel_DragSelectionEnded; }