Exemplo n.º 1
0
        public static IDisposable Bind <T>(IReactiveProperty <T> propertyA, IReactiveProperty <T> propertyB, BindingTypes bindingTypes = BindingTypes.Default, params IFilter <T>[] filters)
        {
            var propertyBBinding = propertyB
                                   .ApplyInputFilters(filters)
                                   .DistinctUntilChanged()
                                   .Subscribe(x => propertyA.Value = x);

            if (bindingTypes == BindingTypes.OneWay)
            {
                return(propertyBBinding);
            }

            var propertyABinding = propertyA
                                   .ApplyOutputFilters(filters)
                                   .DistinctUntilChanged()
                                   .Subscribe(x => propertyB.Value = x);

            return(new CompositeDisposable(propertyABinding, propertyBBinding));
        }