【发布时间】:2011-08-08 15:13:00
【问题描述】:
如何获取ListBoxItem 的索引?
ListBox 已通过 XmlDataProvider 绑定到 XML 节点集合。
【问题讨论】:
标签: c# wpf xaml data-binding listbox
如何获取ListBoxItem 的索引?
ListBox 已通过 XmlDataProvider 绑定到 XML 节点集合。
【问题讨论】:
标签: c# wpf xaml data-binding listbox
我有一个类似的问题,得到了here的回答
基本上,您将 ListBox 的 AlternationCount 设置为非常高的值,并绑定到每个项目上的 AlternationIndex
<ListBox AlternationCount="100">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},
Path=(ItemsControl.AlternationIndex)}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
【讨论】:
可以从ItemContainerGenerator获取ListBoxItem的索引:
listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem);
【讨论】:
属性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>
【讨论】: