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