The listbox is databound, binding to a collection of XML nodes through xmldataprovider.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
I had a similar question which was answered here
Basically you set the ListBox's AlternationCount
to something really high, and bind to the AlternationIndex
on each item
<ListBox AlternationCount="100">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},
Path=(ItemsControl.AlternationIndex)}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
回答2:
You can get the index of the ListBoxItem from the ItemContainerGenerator:
ItemContainerGenerator.IndexFromContainer(my_listBoxItem);
回答3:
The property SelectedIndex
would work. It all depends on how you're doing your binding
You probably want to bind the SelectedIndex
dependency property to some property of the object connected to it's datacontext e.g.
<ListBox SelectedIndex="{Binding MySelectedIndex}" ItemsSource="{Binding MyItems}"/>
but you could obviously do this
<ListBox SelectedIndex="{Binding MySelectedIndex}">
<ListBoxItem>1</ListBoxItem>
<ListBoxItem>2</ListBoxItem>
<ListBoxItem>3</ListBoxItem>
<ListBoxItem>4</ListBoxItem>
</ListBox>