private void OnMoveFactorMessage(MoveFactorMessage message) { Action action = () => { var dialog = new MoveFactorDialog(this); if (dialog.ShowDialog() == true) { message.MoveX = dialog.MoveX; message.MoveY = dialog.MoveY; message.MoveZ = dialog.MoveZ; message.Changed = true; } else { message.Changed = false; } }; this.Dispatcher.Invoke(action); }