Example #1
0
        internal static Property <T> Create <T>(this IReactor reactor, string name, Func <T> valueFunc, params IProperty[] fromProperties)
        {
            var property = reactor.Create <T>(name, valueFunc());

            reactor.WhenPropertiesChange(fromProperties).Subscribe(coll => property.Value = valueFunc());
            return(property);
        }
Example #2
0
        public static Property <T> Create <T>(this IReactor reactor, string name, Expression <Func <T> > valueExpression)
        {
            Func <T> compiled = valueExpression.Compile();

            //Get value from compiled now to provide the default value:
            var property = reactor.Create <T>(name, compiled());

            UsedPropertyChain[] properties = ExpressionHelper.GetUsedPropertiesAndAttachListeners(valueExpression);
            React.WhenAnyPropertyChanges(properties).Subscribe(unit => property.Value = compiled());

            return(property);
        }
Example #3
0
        public static Property <T> Create <T>(this IReactor reactor, Expression <Func <T> > nameExpression, Expression <Func <T> > valueExpression)
        {
            string propertyName = ExpressionHelper.GetNameFromExpression(nameExpression);

            return(reactor.Create <T>(propertyName, valueExpression));
        }
Example #4
0
        public static Property <T> Create <T>(this IReactor reactor, Expression <Func <T> > nameExpression, T defaultValue = default(T))
        {
            string propertyName = ExpressionHelper.GetNameFromExpression(nameExpression);

            return(reactor.Create <T>(propertyName, defaultValue));
        }