Exemplo n.º 1
0
        public object ProvideValue(IMarkupExtensionContext context)
        {
            Object realSource = Source ?? context.DataContext;

            if (null != realSource && realSource is INotifyPropertyChanged)
            {
                BindingMode mode = BindingMode.Default;
                if (Path != null)
                {
                    Type     enumType  = typeof(BindingMode);
                    string[] enumNames = enumType.GetEnumNames( );
                    for (int i = 0, len = enumNames.Length; i < len; i++)
                    {
                        if (enumNames[i] == Mode)
                        {
                            mode = ( BindingMode )Enum.ToObject(enumType, enumType.GetEnumValues( ).GetValue(i));
                            break;
                        }
                    }
                }
                BindingBase binding = new BindingBase(context.Object, context.PropertyName,
                                                      (INotifyPropertyChanged)realSource, Path, mode);
                if (Converter != null)
                {
                    binding.Converter = Converter;
                }
                binding.Bind(  );
                // mb return actual property value ?
                return(null);
            }
            return(null);
        }
Exemplo n.º 2
0
        public void TestString()
        {
            SourceClass source  = new SourceClass();
            TargetClass target  = new TargetClass();
            BindingBase binding = new BindingBase(target, "Title", source, "Text", BindingMode.OneWay);

            binding.Bind();
            source.Text = "Text!";
            Assert.AreEqual(target.Title, source.Text);
        }
Exemplo n.º 3
0
//        [TestMethod]
        public void TestListBinding2()
        {
            SourceClass source  = new SourceClass();
            TargetClass target  = new TargetClass();
            BindingBase binding = new BindingBase(target, "Items", source, "SourceItems", BindingMode.OneWay);

            source.SourceItems.Add("1");
            binding.Bind();
            Assert.IsTrue(target.Items[0] == "1");
            source.SourceItems.Remove("1");
            Assert.IsTrue(target.Items.Count == 0);
        }
Exemplo n.º 4
0
        public void TestValidation( )
        {
            SourceClass source  = new SourceClass();
            TargetClass target  = new TargetClass();
            BindingBase binding = new BindingBase(target, "TargetStr", source, "SourceInt", BindingMode.OneWay);

            binding.UpdateSourceIfBindingFails = false;
            binding.Bind();
            target.TargetInt = 1;
            source.SourceStr = "invalid int";
            Assert.IsTrue(target.TargetInt == 1);
        }
        public void TestMethod1()
        {
            TargetClass target  = new TargetClass(  );
            SourceClass source  = new SourceClass(  );
            BindingBase binding = new BindingBase(target, "Text", source, "Val");

            binding.Converter = new DoubleToStringConverter(  );
            binding.Bind(  );
            source.Val = 3.0f;
            Assert.IsTrue(target.Text == "3");
            target.Text = "0.5";
            Assert.IsTrue(source.Val == 0.5);
        }
Exemplo n.º 6
0
        public void TestConversion( )
        {
            SourceClass source   = new SourceClass();
            TargetClass target   = new TargetClass();
            BindingBase binding  = new BindingBase(target, "TargetInt", source, "SourceStr", BindingMode.OneWay);
            BindingBase binding2 = new BindingBase(target, "TargetStr", source, "SourceInt", BindingMode.OneWay);

            binding.Bind();
            binding2.Bind(  );
            source.SourceInt = 5;
            source.SourceStr = "4";
            Assert.AreEqual(target.TargetInt, 4);
            Assert.AreEqual(target.TargetStr, "5");
        }
Exemplo n.º 7
0
//        [TestMethod]
        public void TestMethod1()
        {
            SourceClass source  = new SourceClass(  );
            TargetClass target  = new TargetClass(  );
            BindingBase binding = new BindingBase(target, "S", source, "Str");

            binding.Adapter = new MyAdapter(  );
            binding.Bind();
            source.Str = "123";
            Assert.IsTrue(target.GetTargetStr(  ) == "123");
            target.SetTargetStr("456");
            Assert.IsTrue(source.Str == "456");
            binding.Unbind(  );
            source.Str = "123";
            Assert.IsTrue(target.GetTargetStr() == "456");
        }
Exemplo n.º 8
0
//        [TestMethod]
        public void TestMethod1()
        {
            SourceClass   source     = new SourceClass(  );
            TargetClass   target     = new TargetClass(  );
            BindingBase   binding    = new BindingBase(target, "TargetStr", source, "SourceInt");
            BindingResult lastResult = null;

            binding.OnBinding += result => {
                lastResult = result;
            };
            binding.Bind(  );
            target.TargetStr = "5";
            Assert.IsTrue(source.SourceInt == 5);
            target.TargetStr = "invalid int";
            Assert.IsTrue(source.SourceInt == 0);
            Assert.IsTrue(lastResult.hasConversionError);
        }