ich ein Listview
habe und dafür ItemsSource
ist Ich habe CollectionOfCapturedImages
(ein ObservableCollection
), ein ein Button
zum Löschen ausgewählter Elemente (BitmapImage
) gesetzt von Listview
und auch von ObservableCollection
und ein Label
in Meine MainWindow
Anzeige der Anzahl der aufgenommenen Bilder.WPF - ausgewähltes Element löscht (Bitmap) von Listview
private void addNewImageButton_Click(object sender, RoutedEventArgs e)
{
CameraWindow cWindow = Application.Current.Windows.OfType<CameraWindow>().FirstOrDefault();
RoutedEventArgs newEventArgs = new RoutedEventArgs(Button.ClickEvent);
cWindow.manualCapture.RaiseEvent(newEventArgs);
// ListView.ScrollIntoView(ListView.Items.Count - 1);
}
public ObservableCollection<BitmapImage> CollectionOfCapturedImages { get; } = new ObservableCollection<BitmapImage>();
<ListView x:Name="ListView" ItemsSource="{Binding CollectionOfCapturedImages}" Height="345" Margin="567,10,10,0" VerticalAlignment="Top">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="1" HorizontalAlignment="Center" VerticalAlignment="Top"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Image Source="{Binding}" Height="150" Width="150"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
das ist, wie ich meine Label
in MainWindow
aktualisieren. Wenn ich Bilder aufnehme, gibt es kein Problem, Label
Inhalt wird aktualisiert.
public Action<int> amountOfCapturedImages;
this.cameraWindow = new CameraWindow(this);
cameraWindow.amountOfCapturedImages += (int count) => {
MwAmountOfImagesLabel.Content = count;
};
und hier ist meine Schaltfläche Löschen
<Button x:Name="DeleteSelectedImageButton" Click="DeleteSelectedImageButton_Click" Content="Delete Selected Image" HorizontalAlignment="Left" Margin="567,488,0,0" Height="26" VerticalAlignment="Top" Width="145"/>
und auf diese Weise ich BitmapImage
s von Listview
private void DeleteSelectedImageButton_Click(object sender, RoutedEventArgs e)
{
CollectionOfCapturedImages.Remove((BitmapImage)ListView.SelectedItem);
}
aber mein Label
‚s Inhalt bin Löschen nicht aktualisiert wird, wenn ich Lösche ein Bild von Listview
. Wie kann ich meinen Inhalt Label
korrekt aktualisieren?
Danke für die Antwort! 'MainWindows Etikett wird aktualisiert, wenn ich Bilder lösche, aber wenn ich ein neues Bild aufnehme, fügt das Label von MainWindow weiterhin Bilder in diesem Fall von 5. hinzu. –
Überprüfen Sie den Zählwert Ihrer Sammlung, wenn Sie neue Bilder erfassen ... machen Sie ein klar auf die Sammlung? Oder wenn Sie eine neue Sammlung erstellen, müssen Sie die GUI über die Änderung benachrichtigen. – GCamel
Ich möchte das ausgewählte Element aus listview (CollectionOfCapturedImages) entfernen und den Inhalt der Beschriftung aktualisieren, nachdem ich auf die Schaltfläche zum Löschen geklickt habe. Ich erstelle keine neue Sammlung. –