protected override object GetProviderPropertyValue (int propertyId)
{
if (propertyId == AutomationElementIdentifiers.ControlTypeProperty.Id)
return ControlType.List.Id;
else if (propertyId == AutomationElementIdentifiers.IsKeyboardFocusableProperty.Id)
return true;
else if (propertyId == AutomationElementIdentifiers.HasKeyboardFocusProperty.Id)
return true;
else if (propertyId == AutomationElementIdentifiers.IsScrollPatternAvailableProperty.Id)
return IsBehaviorEnabled (ScrollPatternIdentifiers.Pattern);
else if (propertyId == AutomationElementIdentifiers.IsTablePatternAvailableProperty.Id)
return false;
else if (propertyId == AutomationElementIdentifiers.IsOffscreenProperty.Id) {
if (comboboxControl.DropDownStyle == SWF.ComboBoxStyle.Simple)
return false;
IExpandCollapseProvider pattern
= comboboxProvider.GetPatternProvider (ExpandCollapsePatternIdentifiers.Pattern.Id) as IExpandCollapseProvider;
return pattern != null && pattern.ExpandCollapseState == ExpandCollapseState.Collapsed;
} else if (propertyId == AutomationElementIdentifiers.NativeWindowHandleProperty.Id)
//Not like Windows, ComboBox.ListBox is a "real control" and has its own handle.
//On mono ComboxBox.ListBox dosen't has native window handle.
return null;
else
return base.GetProviderPropertyValue (propertyId);
}