public void DataGridItem_ISelectionProvider() { List<Customer> boundList = CreateCustomerList(5); DataGrid dataGrid = new DataGrid(); Assert.IsNotNull(dataGrid); isLoaded = false; dataGrid.Width = 350; dataGrid.Height = 250; dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded); dataGrid.AutoGenerateColumns = true; dataGrid.ItemsSource = boundList; dataGrid.ColumnWidth = new DataGridLength(100.0); TestPanel.Children.Add(dataGrid); EnqueueConditional(delegate { return isLoaded; }); this.EnqueueYieldThread(); AutomationPeer peer; ISelectionProvider selector; TestPeer testPeer = new TestPeer(dataGrid); EnqueueCallback(delegate { peer = new DataGridItemAutomationPeer(boundList[0], dataGrid); Assert.IsNotNull(peer); selector = peer.GetPattern(PatternInterface.Selection) as ISelectionProvider; Assert.IsNotNull(selector); Assert.AreEqual(1, selector.GetSelection().Length); peer = testPeer.GetPeerFromProvider(selector.GetSelection()[0]); Assert.AreEqual(typeof(DataGridCell).Name, peer.GetClassName(), "GetSelection did not return DataGridCell"); }); this.EnqueueYieldThread(); EnqueueTestComplete(); }
public void DataGridGroupItem_ISelectionProvider() { PagedCollectionView customers = CreateGroupedCustomerCollectionView(); DataGrid dataGrid = new DataGrid(); Assert.IsNotNull(dataGrid); isLoaded = false; dataGrid.Width = 350; dataGrid.Height = 250; dataGrid.Loaded += new RoutedEventHandler(dataGrid_Loaded); dataGrid.AutoGenerateColumns = true; dataGrid.ItemsSource = customers; TestPanel.Children.Add(dataGrid); EnqueueConditional(delegate { return isLoaded; }); this.EnqueueYieldThread(); AutomationPeer peer; ISelectionProvider selector = null; TestPeer testPeer = new TestPeer(dataGrid); EnqueueCallback(delegate { CollectionViewGroup group = customers.Groups[1] as CollectionViewGroup; Assert.IsNotNull(group, "PagedCollectionView did not return CollectionViewGroup"); peer = new DataGridGroupItemAutomationPeer(group, dataGrid); Assert.IsNotNull(peer); selector = peer.GetPattern(PatternInterface.Selection) as ISelectionProvider; Assert.IsNotNull(selector); Assert.AreEqual(0, selector.GetSelection().Length, "There should not be any selected items within this group"); // Select an item within group 1 peer = new DataGridItemAutomationPeer(customers[3], dataGrid); Assert.IsNotNull(peer); ISelectionItemProvider selectionItem = peer.GetPattern(PatternInterface.SelectionItem) as ISelectionItemProvider; Assert.IsNotNull(selectionItem); selectionItem.AddToSelection(); }); this.EnqueueYieldThread(); EnqueueCallback(delegate { Assert.IsNotNull(selector); Assert.AreEqual(1, selector.GetSelection().Length, "There should be a single selected item within this group"); peer = testPeer.GetPeerFromProvider(selector.GetSelection()[0]); Assert.AreEqual(typeof(DataGridRow).Name, peer.GetClassName(), "GetSelection did not return DataGridRow"); }); this.EnqueueYieldThread(); EnqueueTestComplete(); }