public override void ContentTest() { Assert.IsTrue(IsContentPropertyElement(), "ItemsControl ContentElement."); bool concreteLoaded = false; ItemsControlConcrete concrete = CreateConcreteFrameworkElement() as ItemsControlConcrete; concrete.Loaded += (o, e) => concreteLoaded = true; TestPanel.Children.Add(concrete); // StackPanel with two TextBlocks bool stackPanelLoaded = false; StackPanel stackPanel = new StackPanel(); stackPanel.Children.Add(new TextBlock() { Text = "Text0" }); stackPanel.Children.Add(new TextBlock() { Text = "Text1" }); stackPanel.Loaded += (o, e) => stackPanelLoaded = true; EnqueueConditional(() => concreteLoaded, "ConcreteLoaded #0"); Enqueue(() => concrete.ApplyTemplate()); Enqueue(() => { AutomationPeer peer = FrameworkElementAutomationPeer.CreatePeerForElement(concrete); Assert.IsNotNull(peer, "FrameworkElementAutomationPeer.CreatePeerForElement"); Assert.IsNull(peer.GetChildren(), "GetChildren #0"); concrete.Items.Add(stackPanel); // Also one extra TextBlock concrete.Items.Add(new TextBlock() { Text = "Text2" }); }); EnqueueConditional(() => concreteLoaded && stackPanelLoaded, "ConcreteLoaded #1"); Enqueue(() => { stackPanelLoaded = false; AutomationPeer peer = FrameworkElementAutomationPeer.CreatePeerForElement(concrete); Assert.IsNull(peer.GetChildren(), "GetChildren #1"); // We add another TextBlock and nothing changes stackPanel.Children.Add(new TextBlock() { Text = "Text3" }); Assert.IsNull(peer.GetChildren(), "GetChildren #2"); }); EnqueueTestComplete(); }
public ItemsControlAutomationPeerPoker(ItemsControlConcrete items) : base(items) { }
public ItemsControlAutomationPeerPoker (ItemsControlConcrete items) : base (items) { }