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

            WeakBinding binding = new WeakPropertyBinding(viewModel, "Name", view, "Text1")
                                  .Initialize <WeakPropertyBinding>()
                                  .SetMode(BindMode.TwoWay)
                                  .AttachSourceEvent(typeof(TestView), "StaticTestViewEvent");

            viewModel.Name = Name1;

            Assert.AreEqual(view.Text1, Name1);

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

            TestView.RaiseStaticTestViewEvent();
            Assert.AreEqual(viewModel.Name, Name2);

            BindContext context = binding.GetBindContext(viewModel, "Name");

            Assert.AreEqual(binding.BindTarget, context);

            BindContext source2 = binding.GetBindContext(view, "Text1");

            Assert.AreEqual(binding.BindSource, source2);
        }
        public void Test_WeakBinding_AttachTargetEvent_3()
        {
            var viewModel = new TestViewModel();
            var view      = new TestView();

            new WeakPropertyBinding(view, "Text1", viewModel, "Name")
            .Initialize <WeakPropertyBinding>()
            .SetMode(BindMode.TwoWay)
            .AttachTargetEvent(typeof(TestView), "StaticTestViewEvent");
            viewModel.Name = Name1;

            Assert.AreEqual(view.Text1, Name1);

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

            TestView.RaiseStaticTestViewEvent();
            Assert.AreEqual(viewModel.Name, Name2);
        }