示例#1
0
        /// <summary>
        /// Create an observable expression from the given LINQ Expression, i.e. the expression updates its value according to model changes
        /// </summary>
        /// <typeparam name="T">The type of the expression</typeparam>
        /// <param name="expression">The LINQ Expression tree of the expression</param>
        /// <returns>A notify value</returns>
        public static INotifyValue <T> Expression <T>(Expression <Func <T> > expression)
        {
            var result = NotifySystem.CreateExpression <T>(expression.Body, expression.Parameters);

            result.Successors.SetDummy();
            return(result);
        }
示例#2
0
 /// <summary>
 /// Creates a reversable and observable expression from the given LINQ expression, i.e. the expression updates its value according to model changes and any changes to the expression are propagated back to the model
 /// </summary>
 /// <typeparam name="T">The type of the expression</typeparam>
 /// <param name="expression">The LINQ Expression tree of the expression</param>
 /// <returns>A reversable notify value</returns>
 public static INotifyReversableValue <T> Reversable <T>(Expression <Func <T> > expression)
 {
     try
     {
         var result = NotifySystem.CreateReversableExpression <T>(expression.Body, expression.Parameters);
         result.Successors.SetDummy();
         return(result);
     }
     catch (InvalidCastException)
     {
         throw new ArgumentException("The expression is not reversable.", "expression");
     }
 }
示例#3
0
 public NotifyReversableValue(Expression <Func <T> > expression, IDictionary <string, object> parameterMappings = null)
     : this(NotifySystem.CreateReversableExpression <T>(expression.Body, null, parameterMappings))
 {
 }
示例#4
0
 /// <summary>
 /// Creates a reversable and observable expression from the given LINQ expression, i.e. the expression updates its value according to model changes and any changes to the expression are propagated back to the model
 /// </summary>
 /// <typeparam name="T">The type of the expression</typeparam>
 /// <param name="expression">The LINQ Expression tree of the expression</param>
 /// <returns>A reversable notify value</returns>
 public static INotifyReversableValue <T> Reversable <T>(Expression <Func <T> > expression)
 {
     return(NotifySystem.CreateReversableExpression <T>(expression.Body, null, null));
 }
示例#5
0
 /// <summary>
 /// Create an observable expression from the given LINQ Expression, i.e. the expression updates its value according to model changes
 /// </summary>
 /// <typeparam name="T">The type of the expression</typeparam>
 /// <param name="expression">The LINQ Expression tree of the expression</param>
 /// <returns>A notify value</returns>
 public static INotifyValue <T> Expression <T>(Expression <Func <T> > expression)
 {
     return(NotifySystem.CreateExpression <T>(expression.Body, null, null));
 }