static IDisposable BindOneWayCore <TTarget, TSource>(IEnumerable target, Func <TSource, TTarget> itemConverter, IEnumerable source, bool reverse, bool useStrongReferences) { var binding = new CollectionOneWayBinding <TTarget, TSource>(target, itemConverter, source, new CollectionLocker(), new CollectionLocker(), reverse, useStrongReferences); binding.Reset(); return(binding); }
public void Dispose() { sourceToTarget.Dispose(); sourceToTarget = null; targetToSource.Dispose(); targetToSource = null; }
public CollectionTwoWayBinding(IEnumerable target, Func <TSource, TTarget> itemConverter, IEnumerable source, Func <TTarget, TSource> itemBackConverter, bool reverse, bool useStrongReferences) { CollectionLocker sourceLocker = new CollectionLocker(); CollectionLocker targetLocker = new CollectionLocker(); targetToSource = new CollectionOneWayBinding <TSource, TTarget>(source, itemBackConverter, target, targetLocker, sourceLocker, reverse, useStrongReferences); sourceToTarget = new CollectionOneWayBinding <TTarget, TSource>(target, itemConverter, source, sourceLocker, targetLocker, reverse, useStrongReferences); }
public CollectionTwoWayBinding(object target, Func <TSource, TTarget> itemConverter, object source, Func <TTarget, TSource> itemBackConverter, bool reverse) { CollectionLocker sourceLocker = new CollectionLocker(); CollectionLocker targetLocker = new CollectionLocker(); targetToSource = new CollectionOneWayBinding <TSource, TTarget>(source, itemBackConverter, target, itemConverter, targetLocker, sourceLocker, reverse); sourceToTarget = new CollectionOneWayBinding <TTarget, TSource>(target, itemConverter, source, itemBackConverter, sourceLocker, targetLocker, reverse); }