public virtual void ExpanderButtonFocusActivatesSelection() { StackPanel root = new StackPanel(); TreeView view = new TreeView(); TreeViewItem item = new TreeViewItem { Header = "Item" }; Button button = new Button { Content = "Button" }; view.Items.Add(item); root.Children.Add(view); root.Children.Add(button); ToggleButton ExpanderButton = null; TestAsync( 5, root, () => item.Focus(), () => Assert.IsTrue(item.IsSelected, "Item should be selected!"), () => Assert.IsTrue(item.IsSelectionActive, "Selection should be active after focusing!"), () => button.Focus(), () => Assert.IsFalse(item.IsSelectionActive, "Selection should be inactive after focusing on something else!"), () => ExpanderButton = item.GetVisualChild("ExpanderButton") as ToggleButton, () => Assert.IsNotNull(ExpanderButton, "Failed to find template part ExpanderButton!"), () => ExpanderButton.Focus(), () => Assert.IsTrue(item.IsSelectionActive, "Selection should be active after focusing ExpanderButton!")); }
public virtual void ExpanderButtonClickTogglesIsExpanded() { TreeView view = new TreeView(); TreeViewItem item = new TreeViewItem { Header = "Item", IsExpanded = true }; TreeViewItem child = new TreeViewItem { Header = "Child" }; view.Items.Add(item); item.Items.Add(child); ToggleButton ExpanderButton = null; AutomationPeer peer = null; IToggleProvider provider = null; TestAsync( 5, view, () => ExpanderButton = item.GetVisualChild("ExpanderButton") as ToggleButton, () => Assert.IsNotNull(ExpanderButton, "Failed to find template part ExpanderButton!"), () => peer = FrameworkElementAutomationPeer.CreatePeerForElement(ExpanderButton), () => provider = peer.GetPattern(PatternInterface.Toggle) as IToggleProvider, () => Assert.IsNotNull(provider, "IToggleProvider should not be null!"), () => provider.Toggle(), () => Assert.IsFalse(item.IsExpanded, "Item should be collapsed when clicking ExpanderButton!"), () => provider.Toggle(), () => Assert.IsTrue(item.IsExpanded, "Item should be expanded when clicking ExpanderButton again!")); }