protected void FullOverwrite(MvxBindingDescription bindingDescription)
        {
            if (_sourceSpec != null)
            {
                throw new MvxException("You cannot set the source path of a Fluent binding more than once");
            }

            _sourceSpec = new FullySourceSpec(bindingDescription.Source);
        }
        protected void SetKnownTextPropertyPath(string sourcePropertyPath)
        {
            if (_sourceSpec != null)
            {
                throw new MvxException("You cannot set the source path of a Fluent binding more than once");
            }

            _sourceSpec = new KnownPathSourceSpec(sourcePropertyPath);
        }
        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);
        }
        protected void SourceOverwrite(MvxBindingDescription bindingDescription)
        {
            if (this._sourceSpec != null)
            {
                throw new MvxException("You cannot set the source path of a Fluent binding more than once");
            }

            this._bindingDescription.Mode       = bindingDescription.Mode;
            this._bindingDescription.TargetName = bindingDescription.TargetName;

            this._sourceSpec = new FullySourceSpec(bindingDescription.Source);
        }