public void Test_BindSource_IndexPropertyInt() { var viewModel = new TestViewModel(); var bindSource = new BindContext(viewModel, "TestViewModel2.TestViewModel3.IntValues[1]"); var viewModel2 = new TestViewModel2(); viewModel.TestViewModel2 = viewModel2; var viewModel3 = new TestViewModel3(); viewModel2.TestViewModel3 = viewModel3; Assert.AreEqual(null, bindSource.PropertyType); Assert.AreEqual(null, bindSource.Value); var list = new ObservableCollection<int>(); viewModel3.IntValues = list; Assert.AreEqual(list, bindSource.Source); Assert.AreEqual(typeof(int), bindSource.PropertyType); Assert.AreEqual(default(int), bindSource.Value); list.Add(1); list.Add(2); Assert.AreEqual(2, bindSource.Value); bindSource.Value = 2; Assert.AreEqual(2, list[1]); list.RemoveAt(1); Assert.AreEqual(default(int), bindSource.Value); }
public void Test_WeakCollectionBinding_TwoWay() { var viewModel = new TestViewModel(); var viewModel3 = new TestViewModel3(); new WeakCollectionBinding(viewModel3, "TestViewModelCollection", viewModel, "TestViewModelCollection") .Initialize<WeakCollectionBinding>() .SetMode(BindMode.TwoWay); viewModel3.TestViewModelCollection = new ObservableCollection<TestViewModel2>(); viewModel.TestViewModelCollection = new ObservableCollection<TestViewModel2>(); var viewModel2 = new TestViewModel2(); viewModel3.TestViewModelCollection.Add(viewModel2); Assert.AreEqual(1, viewModel.TestViewModelCollection.Count); Assert.AreEqual(viewModel2, viewModel.TestViewModelCollection[0]); viewModel2 = new TestViewModel2(); viewModel.TestViewModelCollection.Add(viewModel2); Assert.AreEqual(2, viewModel3.TestViewModelCollection.Count); Assert.AreEqual(viewModel2, viewModel3.TestViewModelCollection[1]); viewModel.TestViewModelCollection.Clear(); Assert.AreEqual(0, viewModel3.TestViewModelCollection.Count); viewModel2 = new TestViewModel2(); viewModel3.TestViewModelCollection.Add(viewModel2); Assert.AreEqual(1, viewModel.TestViewModelCollection.Count); viewModel3.TestViewModelCollection.RemoveAt(0); Assert.AreEqual(0, viewModel.TestViewModelCollection.Count); }
public void Test_WeakCollectionBinding_TargetGenerator() { var viewModel = new TestViewModel(); var viewmodel3 = new TestViewModel3(); new WeakCollectionBinding(viewmodel3, "StringValues", viewModel, "TestViewModelCollection") .Initialize<WeakCollectionBinding>() .SetMode<WeakCollectionBinding>(BindMode.TwoWay) .SetSourceDataParameter("_END") .SetSourceDataGenerator((o, o1) => new TestViewModel2 { Name = o.ToString() + o1 }); var collections = new ObservableCollection<TestViewModel2>(); viewModel.TestViewModelCollection = collections; viewmodel3.StringValues.Add(Name1); Assert.AreEqual(1, viewModel.TestViewModelCollection.Count); Assert.AreEqual(Name1 + "_END", viewModel.TestViewModelCollection[0].Name); }
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_BindSource_RecurisonProperty2() { var viewModel = new TestViewModel(); var bindSource = new BindContext(viewModel, "TestViewModel2.TestViewModel3.Name"); Assert.AreEqual(null, bindSource.Source); Assert.AreEqual(null, bindSource.Value); Assert.AreEqual(null, bindSource.PropertyType); var viewModel2 = new TestViewModel2(); viewModel.TestViewModel2 = viewModel2; Assert.AreEqual(null, bindSource.Source); Assert.AreEqual(null, bindSource.Value); Assert.AreEqual(null, bindSource.PropertyType); var viewModel3 = new TestViewModel3(); viewModel2.TestViewModel3 = viewModel3; Assert.AreEqual(viewModel3, bindSource.Source); Assert.AreEqual(typeof(string), bindSource.PropertyType); viewModel3.Name = Name; Assert.AreEqual(Name, bindSource.Value); }