public ConnectorViewModel(WorkflowItemViewModel start, WorkflowItemViewModel end)
        {
            Start = start;
            End = end;

            // setze Werte
            X1 = Start.Left;
            Y1 = Start.Top;
            X2 = End.Left;
            Y2 = End.Top;

            // bei Property Changed Events anmelden
            Start.PropertyChanged += StartOnPropertyChanged;
            End.PropertyChanged += EndOnPropertyChanged;
        }
Esempio n. 2
0
        /// <summary>
        /// Setzt designerCanvas und workflowItemViewModel und stößt lock des aktuellen WorkflowIteman.
        /// Wird beim Start des Drags aufgerufen.
        /// </summary>
        /// <param name="sender">MoveThumb</param>
        /// <param name="e">Eventspezifische Infos</param>
        private void startDrag(object sender, DragStartedEventArgs e)
        {
            // hole ContentControl, das derzeit bewegt wird
            Control designerItem = (Control)DataContext;
            
            if (designerItem != null)
            {
                // hole Item von aktuell bewegtem ContentControl
                workflowItemViewModel = (WorkflowItemViewModel)designerItem.DataContext;

                // merke Koordinaten zu Beginn des Drags
                startLeft = workflowItemViewModel.Left;
                startTop = workflowItemViewModel.Top;

                // Lock workflowItem - falls Item nicht gesperrt werden kann -> designerCanvas = null
                try
                {
                    workflowItemViewModel.LockDrag();

                    // finde DesignerCanvas, damit Größenberechnung neu angestoßen werden kann
                    DependencyObject parent = VisualTreeHelper.GetParent(designerItem);
                    while (parent != null && !(parent is DesignerCanvas))
                    {
                        parent = VisualTreeHelper.GetParent(parent);
                    }
                    if (parent is DesignerCanvas)
                    {
                        designerCanvas = (DesignerCanvas)parent;
                    }
                }
                catch (Exception)
                {
                    WorkflowEditorDesignerCanvasErrorViewModel.Instance.Error = "Das Item konnte nicht gesperrt werden. Bitte noch einmal versuchen.";
                }
            }
        }
        /// <summary>
        /// Läd ein Workflowitem in den contentbereich der View.
        /// </summary>
        /// <param name="item"></param>
        public void LoadWorkflowitem(WorkflowItemViewModel item)
        {
            ErrorMessage = string.Empty;
            WorkflowitemId = item.Id;
            WorkflowItem = item;
            workflowItem.LoadDetails();
            workflowItem.StartEdit();

            IsEnabled = true;
        }