internal CompositeItemCommandBindingBuilder(
            [NotNull] SourceItemCommandBinding <TSourceItem, TSourceItemValue> sourceItemBinding,
            [NotNull] TargetItemBinding <TTargetItem, TTargetItemValue> targetItemBinding,
            [NotNull] BindingSet <TSourceItem> bindingSet)
        {
            _compositeItemBinding = new CompositeItemCommandBinding <TSourceItem, TSourceItemValue, TTargetItem, TTargetItemValue>(
                sourceItemBinding,
                targetItemBinding,
                BindingMode.OneWayToSource,
                new CompositeItemBindingValueConverter <DefaultValueConverter>());

            _bindingSet = bindingSet;
            _bindingSet.Add(_compositeItemBinding);
        }
        internal CompositeItemCommandBindingBuilder(
            [NotNull] SourceItemCommandBinding <TSourceItem, TSourceItemValue> sourceItemBinding,
            [NotNull] TargetItemBinding <TTargetItem, TTargetItemValue> targetItemBinding,
            [NotNull] BindingSet <TSourceItem> bindingSet,
            [NotNull] ICompositeItemBinding <TSourceItem> oldCompositeItemBinding)
        {
            _compositeItemBinding = new CompositeItemCommandBinding <TSourceItem, TSourceItemValue, TTargetItem, TTargetItemValue>(
                sourceItemBinding,
                targetItemBinding,
                oldCompositeItemBinding.RequestedBindingMode,
                oldCompositeItemBinding.ValueConverter);

            _bindingSet = bindingSet;
            _bindingSet.Remove(oldCompositeItemBinding);
            _bindingSet.Add(_compositeItemBinding);
        }