Beispiel #1
0
        private Set GetOnPropertyChangedLambdaSetter(ElementBuilder eb, Property propertyClone, string varName)
        {
            Set setter      = eb.BuildSetter();
            If  ifStatement = eb.BuildIf(eb.OpNotEquals("value", varName));

            ifStatement.AddNode(eb.BuildAssignment(varName, "value"));
            ExpressionCollection args   = new ExpressionCollection();
            LambdaExpression     lambda = new LambdaExpression();
            var propAccess = new ElementReferenceExpression(propertyClone.Name);

            lambda.AddNode(propAccess);
            args.Add(lambda);
            var propChangedCall = eb.BuildMethodCall("RaisePropertyChanged", args, null);

            ifStatement.AddNode(propChangedCall);
            setter.AddNode(ifStatement);
            return(setter);
        }
 private Set GetOnPropertyChangedLambdaSetter(ElementBuilder eb, Property propertyClone, string varName)
 {
     Set setter = eb.BuildSetter();
     If ifStatement = eb.BuildIf(eb.OpNotEquals("value", varName));
     ifStatement.AddNode(eb.BuildAssignment(varName, "value"));
     ExpressionCollection args = new ExpressionCollection();
     LambdaExpression lambda = new LambdaExpression();
     var propAccess = new ElementReferenceExpression(propertyClone.Name);
     lambda.AddNode(propAccess);
     args.Add(lambda);
     var propChangedCall = eb.BuildMethodCall("RaisePropertyChanged", args, null);
     ifStatement.AddNode(propChangedCall);
     setter.AddNode(ifStatement);
     return setter;
 }