2009-12-04 8 views

ответ

2

Посмотрите на код кодированного пользовательского интерфейса, сгенерированный код для WpfControl. Он имеет свойство NativeElement. Это свойство является AutomationElement.

public abstract class WpfControl : UITestControl 
{ 
    ... 

    public virtual object NativeElement 
    { 
     get 
     { 
      return ((object)(this.GetProperty(UITestControlProperties.Common.NativeElement))); 
     } 
    } 

    ... 
} 

Вы можете написать метод расширения для его создания и получить ItemStatus.

public static string GetItemStatus(this WpfControl control) 
{ 
    var automationElement = (AutomationElement)control.NativeElement; 
    return automationElement.Current.ItemStatus; 
} 

Я не уверен, почему NativeElement записывается как object (что делает геттер произнесения излишним). Все элементы управления WPF «NativeElement» имеют тип AutomationElement. Я бы предложил отредактировать сгенерированный код и просто позвонить control.NativeElement.Current.ItemStatus напрямую.