protected void SetCombiner(IMvxValueCombiner combiner, string[] properties, bool useParser)
        {
            if (_sourceSpec != null)
            {
                throw new MvxException("You cannot set the source path of a Fluent binding more than once");
            }

            _sourceSpec = new CombinerSourceSpec(combiner, properties, useParser);
        }
 public MvxFluentBindingDescription <TTarget, TSource> ByCombining(IMvxValueCombiner combiner, params string[] properties)
 {
     SetCombiner(combiner, properties, useParser: true);
     return(this);
 }
 public MvxFluentBindingDescription <TTarget, TSource> ByCombining(IMvxValueCombiner combiner, params Expression <Func <TSource, object> >[] properties)
 {
     SetCombiner(combiner, properties.Select(SourcePropertyPath).ToArray(), useParser: false);
     return(this);
 }
 public CombinerSourceSpec(IMvxValueCombiner combiner, string[] properties, bool useParser)
 {
     _combiner   = combiner;
     _useParser  = useParser;
     _properties = properties;
 }