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