我有一个包含重复项的 ListBox。根据我收集的信息,ListBox.SelectedItems
只会返回重复项的第一个实例,但是当我想对用户选择的所有项目执行操作时,这会导致问题。当我选择多个重复项并调用ListBox.SelectedItems.Count
时,我总是得到1
. 有没有办法获取所有项目的索引,无论它们是否唯一?(ListBox 模式设置为 Multiple)。
添加了演示代码,表明同一项目被视为重复项。
xml:
<Grid x:Name="LayoutRoot" Background="White">
<ListBox Height="288" HorizontalAlignment="Left" Margin="12,0,0,0" Name="listBox1" VerticalAlignment="Top" Width="276" SelectionMode="Multiple" />
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="313,12,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
代码:
ObservableCollection<string> fruits = new ObservableCollection<string>();
fruits.Add("Apple");
fruits.Add("Pear");
fruits.Add("Orange");
fruits.Add("Apple");
listBox1.ItemsSource = fruits ;
我刚刚连接了一个按钮事件:
MessageBox.Show(listBox1.SelectedItems.Count.ToString());
选择顶部Apple
并单击按钮,它将返回1
。选择两者Apples
,它将返回1
。选择一个Apple
and Pear
,它会返回2
。