Selektierte Items aus einer Listbox löschen

Hallo alle Zusammen,

heute wurde ich von meinem Programmierkollegen gefragt, wie es möglich ist, die selektierten Items aus einer Listbox unter WPF zu löschen.

Hier die Lösung:

1. Zunächst, möchte ich euch den XAML-Code bereitstellen.
Hier, sehr einfach gehalten, eine ListBox und ein Button in einem DockPanel. Kopiert euch einfach den Code in die Zwischenablage und fügt Diesen in euer Projekt ein.

<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:scrollTestListbox"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <DockPanel Margin="10,10,10,10">
        <ListBox  x:Name="lst_box" ScrollViewer.VerticalScrollBarVisibility="Visible" HorizontalAlignment="Left" Height="132" Margin="50,50,50,50" VerticalAlignment="Top" Width="276" IsSynchronizedWithCurrentItem="False" SelectionMode="Multiple" >
            <ListBoxItem>Berlin</ListBoxItem>
            <ListBoxItem>Hamburg</ListBoxItem>
            <ListBoxItem>Düsseldorf</ListBoxItem>
            <ListBoxItem>Stuttgart</ListBoxItem>
            <ListBoxItem>Wiesbaden</ListBoxItem>
            <ListBoxItem>Ulm</ListBoxItem>
            <ListBoxItem>Leipzig</ListBoxItem>
            <ListBoxItem>Dresden</ListBoxItem>
            <ListBoxItem>Pirna</ListBoxItem>
            <ListBoxItem>Köln</ListBoxItem>
        </ListBox>
        <Button Margin="10,86,10,238" Click="Button_Click">Markierte Items aus Listbox löschen</Button>

    </DockPanel>
</Window>

2. Der CODE-Behind

Auf dem Button ist ein Click-Event, den irgendwie muss man ja das löschen auslösen *smile*

        'Loopt alle Selectierten Elemente aus euer lst_box durch.
        ' in diesem Fall wird mal die i Variable nicht mit 0, sondern mit dem Max Wert belegt -> Bitte beachte hierzu das Step -1
        For i As Integer = lst_box.SelectedItems.Count - 1 To 0 Step -1

            ' Da sich in dieser Schleife nur die Selektierten Elemente befinden, können wir gleich mit dem Löschen beginnen, ohne Diese nochmals zuvor zu überprüfen.
            lst_box.Items.Remove(lst_box.SelectedItems(i))

        Next

    End Sub