Как получить индекс элемента списка в экземпляре списка WPF? - PullRequest
1 голос
/ 19 апреля 2011

Окно списка привязано к базе данных и привязано к коллекции узлов XML через xmldataprovider.

Ответы [ 3 ]

6 голосов
/ 19 апреля 2011

У меня был похожий вопрос, на который был дан ответ здесь

В основном вы устанавливаете ListBox AlternationCount на что-то действительно высокое и привязываете к AlternationIndex для каждого элемента

<ListBox AlternationCount="100">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},
                                      Path=(ItemsControl.AlternationIndex)}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
2 голосов
/ 02 июля 2015

Вы можете получить индекс ListBoxItem из ItemContainerGenerator:

ItemContainerGenerator.IndexFromContainer(my_listBoxItem);
0 голосов
/ 19 апреля 2011

Свойство SelectedIndex будет работать. Все зависит от того, как вы делаете свою привязку

Возможно, вы хотите связать свойство зависимости SelectedIndex с каким-либо свойством объекта, связанного с его текстом данных, например

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

но вы, очевидно, могли бы сделать это

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