public void Should_Bind_To_Element_Path() { TextBlock target; var root = new TestRoot { Child = new StackPanel { Children = new Controls.Controls { new TextBlock { Name = "source", Text = "foo", }, (target = new TextBlock { Name = "target", }) } } }; var binding = new Binding { ElementName = "source", Path = "Text", }; target.Bind(TextBox.TextProperty, binding); Assert.Equal("foo", target.Text); }
public void Should_Bind_To_Element() { TextBlock source; ContentControl target; var root = new TestRoot { Child = new StackPanel { Children = new Controls.Controls { (source = new TextBlock { Name = "source", Text = "foo", }), (target = new ContentControl { Name = "target", }) } } }; var binding = new Binding { ElementName = "source", }; target.Bind(ContentControl.ContentProperty, binding); Assert.Same(source, target.Content); }
public void Indei_Should_Set_ValidationState() { using (UnitTestApplication.Start(TestServices.MockThreadingInterface)) { var target = new TextBox(); var binding = new Binding(nameof(ExceptionTest.LessThan10)); binding.Source = new IndeiTest(); binding.EnableValidation = true; target.Bind(TextBox.TextProperty, binding); Assert.True(target.ValidationStatus.IsValid); target.Text = "20"; Assert.False(target.ValidationStatus.IsValid); target.Text = "1"; Assert.True(target.ValidationStatus.IsValid); } }
public void Changing_DataContext_Should_Not_Clear_Nested_ViewModel_SelectedItem() { var items = new[] { new Item(), new Item(), }; var vm = new MasterViewModel { Child = new ChildViewModel { Items = items, SelectedItem = items[1], } }; var target = new SelectingItemsControl { DataContext = vm }; var itemsBinding = new Binding("Child.Items"); var selectedBinding = new Binding("Child.SelectedItem"); target.Bind(SelectingItemsControl.ItemsProperty, itemsBinding); target.Bind(SelectingItemsControl.SelectedItemProperty, selectedBinding); Assert.Equal(1, target.SelectedIndex); Assert.Same(vm.Child.SelectedItem, target.SelectedItem); items = new[] { new Item { Value = "Item1" }, new Item { Value = "Item2" }, new Item { Value = "Item3" }, }; vm = new MasterViewModel { Child = new ChildViewModel { Items = items, SelectedItem = items[2], } }; target.DataContext = vm; Assert.Equal(2, target.SelectedIndex); Assert.Same(vm.Child.SelectedItem, target.SelectedItem); }
public void Should_Bind_To_Later_Added_Element() { ContentControl target; StackPanel stackPanel; var root = new TestRoot { Child = stackPanel = new StackPanel { Children = new Controls.Controls { (target = new ContentControl { Name = "target", }), } } }; var binding = new Binding { ElementName = "source", }; target.Bind(ContentControl.ContentProperty, binding); var source = new TextBlock { Name = "source", Text = "foo", }; stackPanel.Children.Add(source); Assert.Same(source, target.Content); }