protected override void OnDrop(DragEventArgs e) { base.OnDrop(e); DragObject dragObject = e.Data.GetData(typeof(DragObject)) as DragObject; if (dragObject != null) { (DataContext as IDiagramViewModel).ClearSelectedItemsCommand.Execute(null); Point position = e.GetPosition(this); //fix old classes not supporting parameter for constructor (add object param = null) also fix converter? DesignerItemViewModelBase itemBase = (DesignerItemViewModelBase)Activator.CreateInstance(dragObject.ContentType, (DataContext as IDiagramViewModel) /*,dragObject.Metadata.Values.ToArray()*/); var iconicBase = itemBase as IHaveIconInfo; if (iconicBase != null) { iconicBase.IconPath = (string)dragObject.Metadata["IconPath"]; } var activityBase = itemBase as IAmActivity; if (activityBase != null) { activityBase.ActivityName = (string)dragObject.Metadata["ActivityName"]; } itemBase.Left = Math.Max(0, position.X - DesignerItemViewModelBase.ItemWidth / 2); itemBase.Top = Math.Max(0, position.Y - DesignerItemViewModelBase.ItemHeight / 2); itemBase.IsSelected = true; (DataContext as IDiagramViewModel).AddItemCommand.Execute(itemBase); } e.Handled = true; }
public FullyCreatedConnectorInfo(DesignerItemViewModelBase dataItem, ConnectorOrientation orientation) : base(orientation) { this.DataItem = dataItem; }