How to get multiple selected items in listbox wpf?

2019-04-10 08:07发布

问题:

I am confused on how to retrieve multi selected values from listbox in wpf.

In XAML I have the following listbox with selection mode multiple.

 <ListBox Height="100" HorizontalAlignment="Left" Margin="139,207,0,0" Name="listBox1" VerticalAlignment="Top" Width="120" SelectionChanged="listBox1_SelectionChanged" SelectionMode="Multiple" />    

 <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="319,220,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />

How do I check in foreach loop now?

        foreach (ListItem li in listBox1.Items)
        {
                ?? // how to check li is selected or not
        }

回答1:

You will find them in ListBox.SelectedItems.

foreach (var item in listBox1.SelectedItems)
{

}


回答2:

another example

int j = 0;
for (int i = 0; i < lbItems.Items.Count; i++)
{
   if (lbItems.Items[i] == lbItems.SelectedItems[0])
   j++;
}
MessageBox.Show(lbItems.Items.IndexOf(lbItems.SelectedItems[0]).ToString()
+ string.Format("\r\nThere are {0} occurences of this object in this list",j) )