Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

Couldn't delete image from the listBox. Error message: Image is being used

$
0
0

Hi Guys, I have loaded a collection of images in the listBox and I display them in the ImageBox for further modification when I click on each image.

I have a button to delete the image, when i use the below function I'm getting a message, 'Image is being used'.

How can i delete the image & select another image? Thank you very much for your help & support.

Delete Function:

private void bDeletePhoto_Click(object sender, RoutedEventArgs e)
        {
            currImgHandler.ClearImage();
            ImageFileCollectionViewModel viewModel = imageListBox.DataContext as ImageFileCollectionViewModel;
            if (viewModel != null)
            {
                ImageFileViewModel image = imageListBox.SelectedItem as ImageFileViewModel;
                if (image != null)
                {
                    //remove physical file from disk:
                    File.Delete(image.FileName);
                    //remove item from ObservableCollection:
                    viewModel.AllImages.Remove(image);
                }
            }
        }

ListBox Select Item & display in the Image:

 CurrentImageHandler currImgHandler;
 private string saveFilname;
        private void showImage(object sender, SelectionChangedEventArgs args)
         {
             ListBox list = ((ListBox)sender);
             if (list != null)
             {
                 int index = list.SelectedIndex;	
                 if (index >= 0)
                 {
                     ImageFileViewModel image = imageListBox.SelectedItem as ImageFileViewModel;
                     if ((image != null) )
                     {
                         Uri uriSource = new Uri(image.FileName, UriKind.RelativeOrAbsolute);
                         ViewedPhoto.Source = new BitmapImage(uriSource);
                         ViewedCaption.Content = image.ShortName.ToString();
                         saveFilname = image.FileName.ToString();
                         currImgHandler.CurrentFileHandler.Load(saveFilname);
                         PaintImage();
                     }
                 }
             }
         }

private void PaintImage()
{
	System.IO.MemoryStream stream = new System.IO.MemoryStream();
	currImgHandler.CurrentBitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
	stream.Position = 0;
	byte[] data = new byte[stream.Length];
	stream.Read(data, 0, Convert.ToInt32(stream.Length));
	BitmapImage bmapImage = new BitmapImage();
	bmapImage.BeginInit();
	bmapImage.StreamSource = stream;
	bmapImage.EndInit();
	ViewedPhoto.Source = bmapImage; //ImageBox

}


Viewing all articles
Browse latest Browse all 18858

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>