public void Test_WeakPropertyBinding_PropertyGetter()
        {
            var viewModel = new TestViewModel();
            var view      = new TestView();

            WeakPropertyBinding propertyBinding = new WeakPropertyBinding(view, "Text1", viewModel, "Name")
                                                  .Initialize <WeakPropertyBinding>()
                                                  .SetMode <WeakPropertyBinding>(BindMode.OneWay)
                                                  .SetSourcePropertyGetter(data => ((TestViewModel)data.Source.Source).Name + "1");

            viewModel.Name = Name1;

            Assert.AreEqual(view.Text1, Name1 + "1");

            propertyBinding.Clear();

            propertyBinding = new WeakPropertyBinding(viewModel, "Name", view, "Text1")
                              .Initialize <WeakPropertyBinding>()
                              .SetMode <WeakPropertyBinding>(BindMode.OneWayToSource)
                              .SetTargetPropertyGetter(data => ((TestViewModel)data.Target.Source).Name + "2");

            viewModel.Name = Name1;

            Assert.AreEqual(view.Text1, Name1 + "2");
        }
        public void Test_WeakPropertyBinding_PropertySetter()
        {
            var viewModel = new TestViewModel();
            var view      = new TestView();

            WeakPropertyBinding propertyBinding = new WeakPropertyBinding(view, null, viewModel, "Name")
                                                  .Initialize <WeakPropertyBinding>()
                                                  .SetMode <WeakPropertyBinding>(BindMode.OneWay)
                                                  .SetTargetPropertySetter(
                (data, value) => { ((TestView)data.Target.Source).Text1 = value.ToStringWithoutException(); });

            viewModel.Name = Name1;

            Assert.AreEqual(view.Text1, Name1);
            propertyBinding.Clear();


            new WeakPropertyBinding(viewModel, "Name", view, null)
            .Initialize <WeakPropertyBinding>()
            .SetMode <WeakPropertyBinding>(BindMode.OneWayToSource)
            .SetSourcePropertySetter(
                (data, value) => { ((TestView)data.Source.Source).Text1 = value.ToStringWithoutException(); });

            viewModel.Name = Name2;

            Assert.AreEqual(view.Text1, Name2);
        }
Exemplo n.º 3
0
        public void Test_WeakBinding_AttachSourceEvent_2()
        {
            var viewModel = new TestViewModel();
            var view      = new TestView();
            var button    = new Button();

            WeakBinding binding = new WeakPropertyBinding(viewModel, "Name", view, "Text1")
                                  .Initialize <WeakPropertyBinding>()
                                  .SetMode(BindMode.OneWay)
                                  .AttachSourceEvent(button, "Click");

            view.Text1 = Name1;
            Assert.AreNotEqual(viewModel.Name, Name1);

            button.PerformClick();
            Assert.AreEqual(viewModel.Name, Name1);
            binding.Clear();

            viewModel = new TestViewModel();
            view      = new TestView();
            button    = new Button();

            new WeakPropertyBinding(viewModel, "Name", view, "Text1")
            .Initialize <WeakPropertyBinding>()
            .SetMode(BindMode.OneWay)
            .AttachSourceEvent(button, null, "Click");

            view.Text1 = Name1;
            Assert.AreNotEqual(viewModel.Name, Name1);

            button.PerformClick();
            Assert.AreEqual(viewModel.Name, Name1);
        }
Exemplo n.º 4
0
        public void Test_WeakBinding_Clear()
        {
            var viewModel = new TestViewModel();
            var view      = new TestView();

            WeakBinding binding = new WeakPropertyBinding(view, "Text1", viewModel, "Name")
                                  .Initialize <WeakPropertyBinding>()
                                  .SetMode(BindMode.TwoWay)
                                  .AttachTargetEvent("TestViewEvent");

            viewModel.Name = Name1;

            Assert.AreEqual(view.Text1, Name1);

            view.Text1 = Name2;
            Assert.AreNotEqual(viewModel.Name, Name2);

            view.RaiseTestViewEvent();
            Assert.AreEqual(viewModel.Name, Name2);

            binding.Clear();

            view.Text1 = Name1;
            Assert.AreNotEqual(viewModel.Name, Name1);
        }
Exemplo n.º 5
0
        public void Test_WeakBinding_AttachSourceEvent_2()
        {
            var viewModel = new TestViewModel();
            var view = new TestView();
            var button = new Button();

            WeakBinding binding = new WeakPropertyBinding(viewModel, "Name", view, "Text1")
                .Initialize<WeakPropertyBinding>()
                .SetMode(BindMode.OneWay)
                .AttachSourceEvent(button, "Click");

            view.Text1 = Name1;
            Assert.AreNotEqual(viewModel.Name, Name1);

            button.PerformClick();
            Assert.AreEqual(viewModel.Name, Name1);
            binding.Clear();

            viewModel = new TestViewModel();
            view = new TestView();
            button = new Button();

            new WeakPropertyBinding(viewModel, "Name", view, "Text1")
                .Initialize<WeakPropertyBinding>()
                .SetMode(BindMode.OneWay)
                .AttachSourceEvent(button, null, "Click");

            view.Text1 = Name1;
            Assert.AreNotEqual(viewModel.Name, Name1);

            button.PerformClick();
            Assert.AreEqual(viewModel.Name, Name1);
        }
Exemplo n.º 6
0
        public void Test_WeakBinding_Clear()
        {
            var viewModel = new TestViewModel();
            var view = new TestView();

            WeakBinding binding = new WeakPropertyBinding(view, "Text1", viewModel, "Name")
                .Initialize<WeakPropertyBinding>()
                .SetMode(BindMode.TwoWay)
                .AttachTargetEvent("TestViewEvent");
            viewModel.Name = Name1;

            Assert.AreEqual(view.Text1, Name1);

            view.Text1 = Name2;
            Assert.AreNotEqual(viewModel.Name, Name2);

            view.RaiseTestViewEvent();
            Assert.AreEqual(viewModel.Name, Name2);

            binding.Clear();

            view.Text1 = Name1;
            Assert.AreNotEqual(viewModel.Name, Name1);
        }