Ejemplo n.º 1
0
        public async Task Check_Binding()
        {
            var SUT = new Pivot()
            {
                HeaderTemplate = PivotHeaderTemplate,
                ItemTemplate   = PivotItemTemplate
            };

            var root = new Grid
            {
                DataContext = new MyContext()
            };

            root.Children.Add(SUT);
            WindowHelper.WindowContent = root;

            await WindowHelper.WaitForIdle();

            var items = (root.DataContext as MyContext)?.Items;

            SUT.SetBinding(Pivot.ItemsSourceProperty, new Binding {
                Path = new PropertyPath("Items")
            });

            PivotItem pi = null;
            await WindowHelper.WaitFor(() => (pi = SUT.ContainerFromItem(items[0]) as PivotItem) != null);

            var tbs = pi.GetAllChildren(null, false).OfType <TextBlock>().Cast <TextBlock>();

            tbs.Should().NotBeNull();
            tbs.Should().HaveCount(1);
            items[0].Content.Should().Be(tbs.ElementAt(0).Text);

            await WindowHelper.WaitFor(() => (pi = SUT.ContainerFromItem(items[1]) as PivotItem) != null);

            var tbs2 = pi.GetAllChildren(null, false).OfType <TextBlock>().Cast <TextBlock>();

            tbs2.Should().NotBeNull();
            tbs2.Should().HaveCount(1);
            items[1].Content.Should().Be(tbs2.ElementAt(0).Text);
        }