将自动化ID添加到绑定的组合框项目

时间:2012-02-02 13:54:18

标签: c# xaml combobox ui-automation

我不太熟悉XAML或绑定,但我一直在每个GUI元素上设置AutomationID。遗憾的是,我无法找到在ComboBox中的项目上设置AutomationID的方法。

以下是在XAML中声明ComboBox的方法。

<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
}

我无法真正提供更多代码,但我可以尝试回答任何问题。

1 个答案:

答案 0 :(得分:4)

我认为你需要定义一个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>