Добавить идентификатор автоматизации в связанные элементы поля со списком

Я не очень хорошо знаком с XAML или привязкой, но я устанавливал AutomationID для каждого элемента графического интерфейса. К сожалению, я не могу найти способ установить AutomationID для элементов в файле ComboBox.

Вот как ComboBox объявляется в XAML.

<ComboBox AutomationProperties.AutomationId="DialogRODB_TypeComboBox"
          Height="23"
          Margin="80,64,27,0"
          VerticalAlignment="Top"
          SelectedValue="{Binding Message.Move.Type}"
          ItemsSource="{Binding Source={StaticResource MoveType}}" />

И в отдельном классе создаются элементы в поле со списком.

public enum MoveType
{
    [StringValue("INBOUND")]    Inbound,
    [StringValue("OUTBOUND")]   Outbound
}

Я не могу предоставить больше кода, но я могу попытаться ответить на любые вопросы.


person ensantos91    schedule 02.02.2012    source источник
comment
Не позволил бы мне опубликовать код xaml. Вот. ‹ComboBox AutomationProperties.AutomationId=DialogRODB_TypeComboBox Height=23 Margin=80,64,27,0 VerticalAlignment=Top SelectedValue={Binding Message.Move.Type} ItemsSource={Binding Source={StaticResource MoveType}}/›   -  person ensantos91    schedule 02.02.2012


Ответы (1)


Я думаю, вам нужно определить ItemTemplate, а затем вы можете поместить Automationid для каждого элемента. Например,

<DataTemplate x:Key="PersonDataTemplate" DataType="model:Person">
    <TextBlock Text="{Binding Name}">
        <AutomationProperties.AutomationId>
            <MultiBinding StringFormat="AID_{0}-{1}">
                <Binding Path="Name" />
                <Binding Path="Id" />
            </MultiBinding >
        </AutomationProperties.AutomationId>
    </TextBlock>
</DataTemplate>
person Dipesh Bhatt    schedule 02.02.2012
comment
Это отлично работает для QA, когда они хотят выполнить тест закодированного пользовательского интерфейса, выбирая определенные идентификаторы из базы данных. - person Johnathon Sullinger; 18.11.2014