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); }
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 ş"); }
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"; }
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); }
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); }
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); }
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); }