Bearbeiten

Freigeben über


TablePattern.TablePatternInformation.GetColumnHeaders Method

Definition

Retrieves a collection of AutomationElements representing all the column headers in a table.

public:
 cli::array <System::Windows::Automation::AutomationElement ^> ^ GetColumnHeaders();
public System.Windows.Automation.AutomationElement[] GetColumnHeaders ();
member this.GetColumnHeaders : unit -> System.Windows.Automation.AutomationElement[]
Public Function GetColumnHeaders () As AutomationElement()

Returns

A collection of AutomationElements. The default is an empty array.

Examples

In the following example, the row or column header is retrieved for a specific table item.

For the purposes of this example, a relationship between the RowOrColumnMajor property and the row and column header items is demonstrated. However, a table can have row and column headers regardless of the RowOrColumnMajor property of the table.

///--------------------------------------------------------------------
/// <summary>
/// Obtains a table items primary row or column header.
/// </summary>
/// <param name="tableItem">
/// The table item of interest.
/// </param>
/// <returns>
/// The table item header.
/// </returns>
///--------------------------------------------------------------------
private AutomationElement GetTableItemHeader(TableItemPattern tableItem)
{
    if (tableItem == null)
    {
        throw new ArgumentException("Target element cannot be null.");
    }

    TablePattern tablePattern = GetTablePattern(tableItem.Current.ContainingGrid);

    if (tablePattern == null)
    {
        return null;
    }

    AutomationElement[] tableHeaders = 
        GetPrimaryHeaders(tablePattern);

    if (tableHeaders == null)
    {
        // Indeterminate headers.
        return null;
    }

    if (tablePattern.Current.RowOrColumnMajor == RowOrColumnMajor.ColumnMajor)
    {
        return tableHeaders[tableItem.Current.Column];
    }

    if (tablePattern.Current.RowOrColumnMajor == RowOrColumnMajor.RowMajor)
    {
        return tableHeaders[tableItem.Current.Row];
    }

    return null;
}

///--------------------------------------------------------------------
/// <summary>
/// Obtains an array of table headers.
/// </summary>
/// <param name="tablePattern">
/// The TablePattern object of interest.
/// </param>
/// <returns>
/// The table row or column primary headers.
/// </returns>
///--------------------------------------------------------------------
private AutomationElement[] GetPrimaryHeaders(
    TablePattern tablePattern)
{
    if (tablePattern.Current.RowOrColumnMajor == 
        RowOrColumnMajor.RowMajor)
    {
        return tablePattern.Current.GetRowHeaders();
    }

    if (tablePattern.Current.RowOrColumnMajor == 
        RowOrColumnMajor.ColumnMajor)
    {
        return tablePattern.Current.GetColumnHeaders();
    }

    return null;
}
'''--------------------------------------------------------------------
''' <summary>
''' Obtains a table items primary row or column header.
''' </summary>
''' <param name="tableItem">
''' The table item of interest.
''' </param>
''' <returns>
''' The table item header.
''' </returns>
'''--------------------------------------------------------------------
Private Function GetTableItemHeader( _
ByVal tableItem As TableItemPattern) As AutomationElement
    If tableItem Is Nothing Then
        Throw New ArgumentException("Target element cannot be null.")
    End If

    Dim tablePattern As TablePattern = _
    GetTablePattern(tableItem.Current.ContainingGrid)

    If tablePattern Is Nothing Then
        Return Nothing
    End If

    Dim tableHeaders As AutomationElement() = _
    GetPrimaryHeaders(tablePattern)

    If tableHeaders Is Nothing Then
        ' Indeterminate headers.
        Return Nothing
    End If

    If tablePattern.Current.RowOrColumnMajor = _
    RowOrColumnMajor.ColumnMajor Then
        Return tableHeaders(tableItem.Current.Column)
    End If

    If tablePattern.Current.RowOrColumnMajor = _
    RowOrColumnMajor.RowMajor Then
        Return tableHeaders(tableItem.Current.Row)
    End If

    Return Nothing

End Function 'GetTableItemHeader    

'''--------------------------------------------------------------------
''' <summary>
''' Obtains an array of table headers.
''' </summary>
''' <param name="tablePattern">
''' The TablePattern object of interest.
''' </param>
''' <returns>
''' The table primary row or column headers.
''' </returns>
'''--------------------------------------------------------------------
Private Overloads Function GetPrimaryHeaders( _
ByVal tablePattern As TablePattern) As AutomationElement()
    If tablePattern.Current.RowOrColumnMajor = _
    RowOrColumnMajor.RowMajor Then
        Return tablePattern.Current.GetRowHeaders()
    End If

    If tablePattern.Current.RowOrColumnMajor = _
    RowOrColumnMajor.ColumnMajor Then
        Return tablePattern.Current.GetColumnHeaders()
    End If

    Return Nothing

End Function 'GetPrimaryHeaders

Applies to

See also