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

本文关键字:组合 项目 绑定 自动化 ID 添加 | 更新日期: 2023-09-27 18:22:09

我不太熟悉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
}

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

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

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