如何在WPF列表框实例中获取listboxitem的索引?

时间:2011-04-19 12:06:16

标签: wpf data-binding listbox

列表框是数据绑定,通过xmldataprovider绑定到XML节点的集合。

3 个答案:

答案 0 :(得分:6)

我有一个类似的问题已被回答here

基本上你将ListBox的AlternationCount设置为非常高的值,并绑定到每个项目的AlternationIndex

<ListBox AlternationCount="100">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},
                                      Path=(ItemsControl.AlternationIndex)}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

答案 1 :(得分:2)

您可以从ItemContainerGenerator获取ListBoxItem的索引:

ItemContainerGenerator.IndexFromContainer(my_listBoxItem);

答案 2 :(得分:0)

属性SelectedIndex可行。这一切都取决于你如何进行约束

您可能希望将SelectedIndex依赖项属性绑定到与其datacontext连接的对象的某些属性,例如。

<ListBox SelectedIndex="{Binding MySelectedIndex}" ItemsSource="{Binding MyItems}"/>

但你显然可以这样做

<ListBox SelectedIndex="{Binding MySelectedIndex}">
  <ListBoxItem>1</ListBoxItem>
  <ListBoxItem>2</ListBoxItem>
  <ListBoxItem>3</ListBoxItem>
  <ListBoxItem>4</ListBoxItem>
</ListBox>