public void ViewModelValidator_Child_CustomValidationAttribute() { var testViewModel = new TestViewModel4() { Child = new TestViewModel4Child() { IsChecked = true } }; var validator = CreateValidator(); var results = validator.ValidateViewModel(testViewModel).OrderBy(n => n.PropertyPath).ToList(); Assert.AreEqual(1, results.Count); Assert.AreEqual("Child().ConditionalRequired", results[0].PropertyPath); }
public TestPage5() { BindingContext = new TestViewModel4(); Content = new StackLayout { Children = { new Label { Text = "Hello ContentPage" } } }; }
public void ViewModelValidator_Child_CustomValidationAttribute() { var testViewModel = new TestViewModel4() { Child = new TestViewModel4Child() { IsChecked = true } }; var validator = CreateValidator(); var results = validator.ValidateViewModel(testViewModel).OrderBy(n => n.PropertyPath).ToList(); Assert.AreEqual(1, results.Count); Assert.AreEqual("Child().ConditionalRequired", results[0].PropertyPath); }
public void Test_WeakPropertyBinding_Index_Indexer() { var view = new TestViewModel(); var viewModel = new TestViewModel(); // 1. OneWay binding. new WeakPropertyBinding(view, "TestViewModel2.TestViewModel3.TestViewModels[0]", viewModel, "TestViewModel2.TestViewModel3.TestViewModels[1]") .Initialize <WeakPropertyBinding>().OfType <WeakPropertyBinding>() .SetMode(BindMode.OneWay) .AttachTargetEvent("TestViewEvent"); var viewModel2 = new TestViewModel2(); viewModel.TestViewModel2 = viewModel2; var viewModel3 = new TestViewModel3(); viewModel2.TestViewModel3 = viewModel3; var testViewModels = new ObservableCollection <TestViewModel4>(); viewModel3.TestViewModels = testViewModels; var t4 = new TestViewModel4(); var t41 = new TestViewModel4(); testViewModels.Add(t4); t41.Name = Name1; viewModel2 = new TestViewModel2(); view.TestViewModel2 = viewModel2; viewModel3 = new TestViewModel3(); viewModel2.TestViewModel3 = viewModel3; testViewModels = new ObservableCollection <TestViewModel4>(); viewModel3.TestViewModels = testViewModels; t41 = new TestViewModel4(); testViewModels.Add(new TestViewModel4()); Assert.AreEqual(1, view.TestViewModel2.TestViewModel3.TestViewModels.Count); viewModel.TestViewModel2.TestViewModel3.TestViewModels.Add(t41); Assert.AreEqual(1, view.TestViewModel2.TestViewModel3.TestViewModels.Count); Assert.AreEqual(view.TestViewModel2.TestViewModel3.TestViewModels[0], t41); }
public void Test_WeakPropertyBinding_Index_Observable() { var view = new TestView(); var viewModel = new TestViewModel(); // 1. OneWay binding. new WeakPropertyBinding(view, "Text1", viewModel, "TestViewModel2.TestViewModel3.TestViewModels[1].Name") .Initialize <WeakPropertyBinding>().OfType <WeakPropertyBinding>() .SetMode(BindMode.TwoWay) .AttachTargetEvent("TestViewEvent"); var viewModel2 = new TestViewModel2(); viewModel.TestViewModel2 = viewModel2; var viewModel3 = new TestViewModel3(); viewModel2.TestViewModel3 = viewModel3; var testViewModels = new ObservableCollection <TestViewModel4>(); viewModel3.TestViewModels = testViewModels; var t4 = new TestViewModel4(); var t41 = new TestViewModel4(); testViewModels.Add(t4); testViewModels.Add(t41); t41.Name = Name1; Assert.AreEqual(Name1, view.Text1); view.Text1 = Name2; view.RaiseTestViewEvent(); Assert.AreEqual(Name2, t41.Name); var t42 = new TestViewModel4(); testViewModels[1] = t42; Assert.AreEqual(null, view.Text1); }
public void Test_BindSource_IndexPropertyInt2() { var viewModel = new TestViewModel(); var bindSource = new BindContext(viewModel, "TestViewModel2.TestViewModel3.TestViewModels[1].Name"); var viewModel2 = new TestViewModel2(); viewModel.TestViewModel2 = viewModel2; var viewModel3 = new TestViewModel3(); viewModel2.TestViewModel3 = viewModel3; Assert.AreEqual(null, bindSource.Value); Assert.AreEqual(null, bindSource.Source); var testViewModels = new ObservableCollection <TestViewModel4>(); viewModel3.TestViewModels = testViewModels; Assert.AreEqual(null, bindSource.Source); Assert.AreEqual(null, bindSource.Value); var t4 = new TestViewModel4(); var t41 = new TestViewModel4(); testViewModels.Add(t4); testViewModels.Add(t41); Assert.AreEqual(t41, bindSource.Source); Assert.AreEqual(null, bindSource.Value); t41.Name = Name; Assert.AreEqual(Name, bindSource.Value); testViewModels.RemoveAt(1); Assert.AreEqual(null, bindSource.Source); Assert.AreEqual(null, bindSource.Value); }
public void Test_WeakPropertyBinding_Index_Expression_String() { var view = new TestView(); var viewModel = new TestViewModel(); // 1. OneWay binding. BindingEngine.SetPropertyBinding(view, v => v.Text1, viewModel, vm => vm.TestViewModel2.TestViewModel3.TestViewModel4s["12"].Name) .Initialize <WeakPropertyBinding>().OfType <WeakPropertyBinding>() .SetMode(BindMode.TwoWay) .AttachTargetEvent("TestViewEvent"); var viewModel2 = new TestViewModel2(); viewModel.TestViewModel2 = viewModel2; var viewModel3 = new TestViewModel3(); viewModel2.TestViewModel3 = viewModel3; var testViewModels = new ObservableDictionary <string, TestViewModel4>(); viewModel3.TestViewModel4s = testViewModels; var t4 = new TestViewModel4(); testViewModels.Add("12", t4); t4.Name = Name1; Assert.AreEqual(Name1, view.Text1); view.Text1 = Name2; view.RaiseTestViewEvent(); Assert.AreEqual(Name2, t4.Name); var t42 = new TestViewModel4(); testViewModels["12"] = t42; Assert.AreEqual(null, view.Text1); }