public void Test_WeakCommandBinding_CanExecuteChangedCallback() { var viewModel = new TestViewModel(); var view = new TestView(); Assert.IsFalse(view.Enable); bool isEnable = false; WeakCommandBinding commandBinding = new WeakCommandBinding(view, null, viewModel, "AddAgeCommand") .Initialize <WeakCommandBinding>() .AttachTargetEvent("TestViewEvent") .OfType <WeakCommandBinding>() .AddEnableProperty("Enable") .Watch("Age") .SetCanExecuteChanged((sender, args) => { isEnable = args.CanExecute; }); Assert.IsTrue(view.Enable); Assert.IsTrue(isEnable); Assert.AreEqual(0, viewModel.Age); view.RaiseTestViewEvent(); Assert.AreEqual(1, viewModel.Age); Assert.IsTrue(view.Enable); Assert.IsTrue(isEnable); commandBinding.SetCanExecuteChanged(null); viewModel.Age++; Assert.IsFalse(view.Enable); Assert.IsTrue(isEnable); }
public void Test_WeakCommandBinding_CanExecuteChangedCallback() { var viewModel = new TestViewModel(); var view = new TestView(); Assert.IsFalse(view.Enable); bool isEnable = false; WeakCommandBinding commandBinding = new WeakCommandBinding(view, null, viewModel, "AddAgeCommand") .Initialize<WeakCommandBinding>() .AttachTargetEvent("TestViewEvent") .OfType<WeakCommandBinding>() .AddEnableProperty("Enable") .Watch("Age") .SetCanExecuteChanged((sender, args) => { isEnable = args.CanExecute; }); Assert.IsTrue(view.Enable); Assert.IsTrue(isEnable); Assert.AreEqual(0, viewModel.Age); view.RaiseTestViewEvent(); Assert.AreEqual(1, viewModel.Age); Assert.IsTrue(view.Enable); Assert.IsTrue(isEnable); commandBinding.SetCanExecuteChanged(null); viewModel.Age++; Assert.IsFalse(view.Enable); Assert.IsTrue(isEnable); }
public void Test_WeakCommandBinding_RemoveEnableProperty_Expression() { var viewModel = new TestViewModel(); var view = new TestView(); Assert.IsFalse(view.Enable); WeakCommandBinding weakCommandBinding = new WeakCommandBinding(view, null, viewModel, "AddAgeCommand") .Initialize <WeakCommandBinding>() .AttachTargetEvent("TestViewEvent") .OfType <WeakCommandBinding>() .AddEnableProperty <TestView>(i => i.Enable); Assert.IsTrue(view.Enable); Assert.AreEqual(0, viewModel.Age); view.RaiseTestViewEvent(); Assert.AreEqual(1, viewModel.Age); Assert.IsTrue(view.Enable); weakCommandBinding.RemoveEnableProperty <TestView>(i => i.Enable); view.RaiseTestViewEvent(); Assert.IsTrue(view.Enable); }
public void Test_WeakCommandBinding_UnWatch() { var viewModel = new TestViewModel(); var view = new TestView(); Assert.IsFalse(view.Enable); WeakCommandBinding commandBinding = new WeakCommandBinding(view, null, viewModel, "AddAgeCommand") .Initialize <WeakCommandBinding>() .AttachTargetEvent("TestViewEvent") .OfType <WeakCommandBinding>() .AddEnableProperty("Enable") .Watch(viewModel, "Age"); commandBinding.Watch(viewModel, "Age"); Assert.IsTrue(view.Enable); Assert.AreEqual(0, viewModel.Age); view.RaiseTestViewEvent(); Assert.AreEqual(1, viewModel.Age); Assert.IsTrue(view.Enable); Exception exception = null; try { commandBinding.Watch(null, "Age"); } catch (ArgumentNullException e) { exception = e; } Assert.IsNotNull(exception); viewModel.Age++; Assert.IsFalse(view.Enable); viewModel.Age--; Assert.IsTrue(view.Enable); commandBinding.UnWatch("Age"); viewModel.Age++; Assert.IsTrue(view.Enable); commandBinding.Watch(viewModel, "Age"); Assert.IsFalse(view.Enable); commandBinding.UnWatch(viewModel, "Age"); viewModel.Age--; Assert.IsFalse(view.Enable); }
public void Test_WeakCommandBinding_UnWatch_Expression() { var viewModel = new TestViewModel(); var view = new TestView(); Assert.IsFalse(view.Enable); WeakCommandBinding commandBinding = new WeakCommandBinding(view, null, viewModel, "AddAgeCommand") .Initialize<WeakCommandBinding>() .AttachTargetEvent("TestViewEvent") .OfType<WeakCommandBinding>() .AddEnableProperty("Enable") .Watch<TestViewModel>(i => i.Age); Assert.IsTrue(view.Enable); Assert.AreEqual(0, viewModel.Age); view.RaiseTestViewEvent(); Assert.AreEqual(1, viewModel.Age); Assert.IsTrue(view.Enable); viewModel.Age++; Assert.IsFalse(view.Enable); viewModel.Age--; Assert.IsTrue(view.Enable); commandBinding.UnWatch<TestViewModel>(null); commandBinding.UnWatch(null); Exception exception = null; try { commandBinding.UnWatch(null, null); } catch (ArgumentNullException e) { exception = e; } Assert.IsNotNull(exception); commandBinding.UnWatch<TestViewModel>(o => o.Age); viewModel.Age++; Assert.IsTrue(view.Enable); }
public void Test_WeakCommandBinding_RemoveEnableProperty_Expression() { var viewModel = new TestViewModel(); var view = new TestView(); Assert.IsFalse(view.Enable); WeakCommandBinding weakCommandBinding = new WeakCommandBinding(view, null, viewModel, "AddAgeCommand") .Initialize<WeakCommandBinding>() .AttachTargetEvent("TestViewEvent") .OfType<WeakCommandBinding>() .AddEnableProperty<TestView>(i => i.Enable); Assert.IsTrue(view.Enable); Assert.AreEqual(0, viewModel.Age); view.RaiseTestViewEvent(); Assert.AreEqual(1, viewModel.Age); Assert.IsTrue(view.Enable); weakCommandBinding.RemoveEnableProperty<TestView>(i => i.Enable); view.RaiseTestViewEvent(); Assert.IsTrue(view.Enable); }
public static void Bind(this IBindingContext bindingContext, object target, string commandEvent, string enabledProperty, ICommand command) { var binding = new WeakCommandBinding(target, commandEvent, enabledProperty, command); bindingContext.Bindings.Add(binding); }