public void Handle(RectangleClickMessage message) { var rectangle = message.Rectangle; if (!_isConnecting) { _isConnecting = true; _sourceRectangle = rectangle; if (_sourceRectangle.IsConnected) { RemoveExistingConnection(_sourceRectangle); } StartDrawingLine(_sourceRectangle); } else { _isConnecting = false; _destinationRectangle = rectangle; if (ConnectionNotPossible(rectangle)) { CancelDrawingLine(); return; } if (_destinationRectangle.IsConnected) { RemoveExistingConnection(_destinationRectangle); } AddConnection(_sourceRectangle, _destinationRectangle, _line); } }
public void Rectangle_MouseLeftButtonDown(object sender, RoutedEventArgs e) { var message = new RectangleClickMessage() { Rectangle = this, }; _eventAggregator.PublishOnUIThread(message); }