将属性绑定到每个创建的ListBox.ItemTemplate

Doc*_*Doc 1 c# silverlight xaml listboxitem silverlight-5.0

我对wpf和silverlight都是新手,我有很多需要学习的东西......

我有一个包含模板的列表框

<ListBox ItemsSource="{Binding itemList}" x:Name="list">
    <ListBox.ItemTemplate>
        <DataTemplate x:Name="datatemplate" >
            <Grid Name="{Binding Id}">
                <TextBlock Text="{Binding Txt}"></TextBlock>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

我需要为AutomationProperties.AutomationId每个列表项分配一个,比如

<ListBoxItem x:Name="lb_a" AutomationProperties.AutomationId="lb_1">
    <Grid Name="grid_a">
        <TextBlock Text="aa"></TextBlock>
    </Grid>
</ListBoxItem>
<ListBoxItem x:Name="lb_b" AutomationProperties.AutomationId="lb_2">
    <Grid Name="grid_b">
        <TextBlock Text="bb"></TextBlock>
    </Grid>
</ListBoxItem>
...
Run Code Online (Sandbox Code Playgroud)

我能怎么做?甚至可能吗?

dko*_*ozl 8

您可以在ItemContainerStyle以下位置设置附属物:

<ListBox ItemsSource="{Binding itemList}" x:Name="list">
    <ListBox.ItemTemplate>

    </ListBox.ItemTemplate>
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="AutomationProperties.AutomationId" Value="{Binding MyAutomationIdProperty}"/>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
Run Code Online (Sandbox Code Playgroud)