public AutomationPattern [] GetSupportedPatterns ()
{
List<AutomationPattern> patterns = new List<AutomationPattern> ();
if (SupportsExpandCollapse ())
patterns.Add (ExpandCollapsePatternIdentifiers.Pattern);
if (SupportsGrid ())
patterns.Add (GridPatternIdentifiers.Pattern);
if (SupportsGridItem ())
patterns.Add (GridItemPatternIdentifiers.Pattern);
if (SupportsInvoke ())
patterns.Add (InvokePatternIdentifiers.Pattern);
if (SupportsRangeValue ())
patterns.Add (RangeValuePatternIdentifiers.Pattern);
if (SupportsSelection ())
patterns.Add (SelectionPatternIdentifiers.Pattern);
if (SupportsSelectionItem ())
patterns.Add (SelectionItemPatternIdentifiers.Pattern);
if (SupportsTable ())
patterns.Add (TablePatternIdentifiers.Pattern);
if (SupportsTableItem ())
patterns.Add (TableItemPatternIdentifiers.Pattern);
if (SupportsText ())
patterns.Add (TextPatternIdentifiers.Pattern);
if (SupportsToggle ())
patterns.Add (TogglePatternIdentifiers.Pattern);
if (SupportsValue ())
patterns.Add (ValuePatternIdentifiers.Pattern);
return patterns.ToArray ();
}