// Token: 0x06002604 RID: 9732 RVA: 0x000B5F50 File Offset: 0x000B4150
        protected override List <AutomationPeer> GetChildrenCore()
        {
            DataGridCellsPresenter cellsPresenter = this.OwningDataGridRow.CellsPresenter;

            if (cellsPresenter != null && cellsPresenter.ItemsHost != null)
            {
                List <AutomationPeer> list = new List <AutomationPeer>(3);
                AutomationPeer        rowHeaderAutomationPeer = this.RowHeaderAutomationPeer;
                if (rowHeaderAutomationPeer != null)
                {
                    list.Add(rowHeaderAutomationPeer);
                }
                DataGridItemAutomationPeer dataGridItemAutomationPeer = base.EventsSource as DataGridItemAutomationPeer;
                if (dataGridItemAutomationPeer != null)
                {
                    list.AddRange(dataGridItemAutomationPeer.GetCellItemPeers());
                }
                AutomationPeer detailsPresenterAutomationPeer = this.DetailsPresenterAutomationPeer;
                if (detailsPresenterAutomationPeer != null)
                {
                    list.Add(detailsPresenterAutomationPeer);
                }
                return(list);
            }
            return(base.GetChildrenCore());
        }
Ejemplo n.º 2
0
        ///
        protected override List <AutomationPeer> GetChildrenCore()
        {
            // see whether the DataGridRow uses the standard control template
            DataGridCellsPresenter cellsPresenter = OwningDataGridRow.CellsPresenter;

            if (cellsPresenter != null && cellsPresenter.ItemsHost != null)
            {
                // this is the normal case
                List <AutomationPeer> children = new List <AutomationPeer>(3);

                // Step 1: Add row header if exists
                AutomationPeer dataGridRowHeaderAutomationPeer = RowHeaderAutomationPeer;
                if (dataGridRowHeaderAutomationPeer != null)
                {
                    children.Add(dataGridRowHeaderAutomationPeer);
                }

                // Step 2: Add all cells
                DataGridItemAutomationPeer itemPeer = this.EventsSource as DataGridItemAutomationPeer;
                if (itemPeer != null)
                {
                    children.AddRange(itemPeer.GetCellItemPeers());
                }

                // Step 3: Add DetailsPresenter last if exists
                AutomationPeer dataGridDetailsPresenterAutomationPeer = DetailsPresenterAutomationPeer;
                if (dataGridDetailsPresenterAutomationPeer != null)
                {
                    children.Add(dataGridDetailsPresenterAutomationPeer);
                }

                return(children);
            }
            else
            {
                // in the unusual case where the app uses a non-standard control template
                // for the DataGridRow, fall back to the base implementation
                return(base.GetChildrenCore());
            }
        }