private void OnSurfaceMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (_sourceConnector != null)
{
var targetConnector = VisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(null), _surface).OfType<ObjectConnector>().FirstOrDefault();
if (targetConnector != null
&& targetConnector != _sourceConnector
&& targetConnector.DesignerControl != _sourceConnector.DesignerControl
&& CanFinishConnection(targetConnector))
{
var sourceId = _sourceConnector.DesignerControl.Id;
var targetId = targetConnector.DesignerControl.Id;
var workflowLink = new FunctionReference
{
SourceId = sourceId,
SourcePin = _sourceConnector.PinName,
TargetId = targetId,
TargetPin = targetConnector.PinName
};
Workflow.AddItem(workflowLink);
}
}
RemoveConnectionLine();
if (SelectedItemHost != null)
{
SelectedItemHost.ReleaseMouseCapture();
_dragStarted = false;
}
}