コード例 #1
0
        public void BindingEvaluateVisitor_PropertyGet()
        {
            var target = CreateTestObject();
            var parser = new BindingParser();
            var eval = new BindingEvaluateVisitor();

            // arrayIndex on array
            var binding = (BindingMarkup)parser.ParseExpression("Child");
            Assert.AreEqual(target.Child, eval.Visit(binding.Path, target));
        }
コード例 #2
0
        public void BindingEvaluateVisitor_IndexerOnIList()
        {
            var target = CreateTestObject();
            var parser = new BindingParser();
            var eval = new BindingEvaluateVisitor();

            // property.arrayIndex on List
            var binding = (BindingMarkup)parser.ParseExpression("Child.ListOfIntegers[0]");
            Assert.AreEqual(1, eval.Visit(binding.Path, target));
        }
コード例 #3
0
        public void BindingEvaluateVisitor_IndexerOnly()
        {
            var target = CreateTestObject();
            var parser = new BindingParser();
            var eval = new BindingEvaluateVisitor();

            // arrayIndex on array
            var binding = (BindingMarkup)parser.ParseExpression("[1]");
            Assert.AreEqual(2, eval.Visit(binding.Path, target.Child.ArrayOfIntegers));
        }
コード例 #4
0
        public void BindingEvaluateVisitor_IndexerOnIEnumerable()
        {
            var target = CreateTestObject();
            var parser = new BindingParser();
            var eval = new BindingEvaluateVisitor();

            // property.arrayIndex on IEnumerable
            var binding = (BindingMarkup)parser.ParseExpression("Child.EnumerableOfValues[1].Value");
            Assert.AreEqual("b", eval.Visit(binding.Path, target));
        }
コード例 #5
0
 public object Evaluate(object context)
 {
     var visitor = new BindingEvaluateVisitor();
     return visitor.Visit(this, context);
 }