TablePattern.TablePatternInformation.RowOrColumnMajor Property

Definition

Retrieves the primary direction of traversal (ColumnMajor, RowMajor, Indeterminate) for the table.

public:
 property System::Windows::Automation::RowOrColumnMajor RowOrColumnMajor { System::Windows::Automation::RowOrColumnMajor get(); };
public System.Windows.Automation.RowOrColumnMajor RowOrColumnMajor { get; }
member this.RowOrColumnMajor : System.Windows.Automation.RowOrColumnMajor
Public ReadOnly Property RowOrColumnMajor As RowOrColumnMajor

Property Value

The primary direction of traversal. The default is Indeterminate.

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