public DataJoinConfigureColumns(DataJoinActivity activity)
        {
            InitializeComponent();
              _activity = activity;

              foreach (var mapping in ParseColumnMappings(activity))
            _mappings.Add(mapping);

              mappingsGrid.ItemsSource = _mappings;
        }
        public DataJoinConfigureColumns(DataJoinActivity activity)
        {
            InitializeComponent();
            _activity = activity;

            foreach (var mapping in ParseColumnMappings(activity))
            {
                _mappings.Add(mapping);
            }

            mappingsGrid.ItemsSource = _mappings;
        }
        private static IEnumerable<ColumnMapping> ParseColumnMappings(DataJoinActivity activity)
        {
            if (activity == null) yield break;
              if (string.IsNullOrWhiteSpace(activity.Columns)) yield break;

              var mappings = activity.Columns.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

              foreach (var pair in mappings
            .Select(mapping => mapping.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries))
            .Where(pair => pair.Length == 2))
            yield return new ColumnMapping(pair[0].Trim(), pair[1].Trim());
        }
        private static IEnumerable <ColumnMapping> ParseColumnMappings(DataJoinActivity activity)
        {
            if (activity == null)
            {
                yield break;
            }
            if (string.IsNullOrWhiteSpace(activity.Columns))
            {
                yield break;
            }

            var mappings = activity.Columns.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var pair in mappings
                     .Select(mapping => mapping.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries))
                     .Where(pair => pair.Length == 2))
            {
                yield return(new ColumnMapping(pair[0].Trim(), pair[1].Trim()));
            }
        }