2011-06-23 1 views
1

次のUIを使用してコンボボックスのlistitemを取得しようとしています。AUtomationコードとゼロアイテムが返されています。このコモボックスには確かにアイテムがありますので、何が間違っていますか?Microsoft UIオートメーションがComboBoxアイテムを返さない

GetMarketAreasComboBoxは次のように定義されて
var comboBox = GetMarketAreasComboBox(); 
var items = comboBox.FindAll(TreeScope.Element, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.ListItem)); 

:それは、リスト項目の要素がまだメモリにロードされていない可能性があります

private AutomationElement GetMarketAreasComboBox() 
{ 
    var control = LocalRootAutomationElement.FindFirst(TreeScope.Descendants , new PropertyCondition(AutomationElement.AutomationIdProperty, "MarketAreasComboBox")); 
    Assert.IsNotNull(control); 
    return control; 
} 

答えて

2

。コンボボックスを展開し、リストアイテム要素

var comboBox = GetMarketAreasComboBox(); 
var comboBoxPattern = (ExpandCollapsePattern)comboBox.GetCurrentPattern(ExpandCollapsePattern.Pattern); 
comboBoxPattern.Expand(); 
comboBoxPattern.Collapse(); 
var items = comboBox.FindAll(TreeScope.Element, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.ListItem)); 
1

コンボボックスがcomboBox.FindAllのための子孫にヌル 2.スコープの変更ではない場合、私は 1.チェックを試しているだろういくつかのことを確認してください。 3.リスト項目がコンボボックスの下に実際にロードされているときにコードパスに当たっていることを確認してください(上記のjvanbrakelが推奨するように展開する必要があります)

関連する問題