Beispiel #1
0
        static void ShouldSupportTypeWhenSourcePropertyTypeIsObject(Assert assert)
        {
            var source = new A();
            var target = new A();

            var bindingInfo = new BindingInfo
            {
                BindingMode = BindingMode.TwoWay,
                SourcePath  = nameof(source.ObjectProperty),
                Source      = source,
                Target      = target,
                TargetPath  = nameof(target.Int32Property)
            };

            bindingInfo.Connect();

            var value = 56;

            source.ObjectProperty = value;

            assert.AreEqual(56, target.Int32Property);

            target.Int32Property = 76;

            assert.AreEqual(76, (int)source.ObjectProperty);
        }
Beispiel #2
0
        void SimpleBind_with_Converter()
        {
            var simpleClass1 = new SimpleClass1();
            var simpleClass2 = new SimpleClass1();

            var bindingInfo = new BindingInfo
            {
                BindingMode = BindingMode.OneWay,
                SourcePath  = LastName,
                Source      = simpleClass1,
                Target      = simpleClass2,
                TargetPath  = Year,
                Converter   = new ATo56Converter()
            };

            bindingInfo.Connect();

            simpleClass1.LastName = "A";

            MustEqual(56, simpleClass2.Year);

            var info = BindingInfo.TryParseExpression("{  XXX , Converter = " + typeof(ATo56Converter).FullName + "}");

            Assert.True(info.Converter != null);


            info = BindingInfo.TryParseExpression("{   XXX.Y.Z ,  Mode=OneWay  , Converter = " + typeof(ATo56Converter).FullName + "}");

            Assert.True(info.Converter != null);
            Assert.True(info.BindingMode == BindingMode.OneWay);
            Assert.True(info.SourcePath.Path == "XXX.Y.Z");



            info = BindingInfo.TryParseExpression("{   XXX.Y.Z ,  Mode=OneWay  , Converter = " + typeof(ATo56Converter).FullName + " , ConverterParameter= 'j4 A5: p o ş'}");

            Assert.True(info.Converter != null);
            Assert.True(info.BindingMode == BindingMode.OneWay);
            Assert.True(info.SourcePath.Path == "XXX.Y.Z");

            Assert.True(info.ConverterParameter == (object)"j4 A5: p o ş");


            info = BindingInfo.TryParseExpression("{Binding     XXX.Y.Z,Mode=OneWay,Converter= " + typeof(ATo56Converter).FullName + " , ConverterParameter= 'j4 A5: p o ş'}");

            Assert.True(info.Converter != null);
            Assert.True(info.BindingMode == BindingMode.OneWay);
            Assert.True(info.SourcePath.Path == "XXX.Y.Z");

            Assert.True(info.ConverterParameter == (object)"j4 A5: p o ş");
        }
Beispiel #3
0
        public void SimpleBindWithSameValues()
        {
            var simpleClass1 = new SimpleClass1();

            var bindingInfo = new BindingInfo
            {
                BindingMode = BindingMode.TwoWay,
                SourcePath  = LastName,
                Source      = simpleClass1,
                Target      = simpleClass1,
                TargetPath  = LastName
            };

            bindingInfo.Connect();

            simpleClass1.LastName = "Alex1";
        }
Beispiel #4
0
        public void SimpleBind()
        {
            var simpleClass1 = new SimpleClass1();
            var simpleClass2 = new SimpleClass1();

            var bindingInfo = new BindingInfo
            {
                BindingMode = BindingMode.OneWay,
                SourcePath  = LastName,
                Source      = simpleClass1,
                Target      = simpleClass2,
                TargetPath  = LastName
            };

            bindingInfo.Connect();

            simpleClass1.LastName = "Alex1";

            MustEqual("Alex1", simpleClass2.LastName);
        }
Beispiel #5
0
        void SimpleBind_with_Different_primitive_types()
        {
            var simpleClass1 = new SimpleClass1();
            var simpleClass2 = new SimpleClass1();

            var bindingInfo = new BindingInfo
            {
                BindingMode = BindingMode.OneWay,
                SourcePath  = LastName,
                Source      = simpleClass1,
                Target      = simpleClass2,
                TargetPath  = Year
            };

            bindingInfo.Connect();

            simpleClass1.LastName = "56";

            MustEqual(56, simpleClass2.Year);
        }
Beispiel #6
0
        public void LongPropertyPathForSource()
        {
            var simpleClass1 = new SimpleClass1
            {
                Child = new SimpleClass1()
            };
            var simpleClass2 = new SimpleClass1();

            var bindingInfo = new BindingInfo
            {
                BindingMode = BindingMode.OneWay,
                SourcePath  = nameof(simpleClass1.Child) + "." + LastName,
                Source      = simpleClass1,
                Target      = simpleClass2,
                TargetPath  = LastName
            };

            bindingInfo.Connect();

            simpleClass1.Child.LastName = "Alex0";

            MustEqual("Alex0", simpleClass2.LastName);
        }
Beispiel #7
0
        public void BindingInBag()
        {
            var simpleClass1 = new SimpleClass1();
            var bag          = new Bag();

            var bindingInfo = new BindingInfo
            {
                BindingMode = BindingMode.TwoWay,
                SourcePath  = LastName,
                Source      = simpleClass1,
                Target      = bag,
                TargetPath  = LastName
            };

            bindingInfo.Connect();

            simpleClass1.LastName = "Alex1";

            MustEqual("Alex1", (string)bag[LastName]);

            bag[LastName] = "Alex3";

            MustEqual("Alex3", simpleClass1.LastName);
        }