1

分離されたストレージから取得する画像にバインドされたリストボックスがあります。これらの画像を取得する方法は次のとおりです...

     foreach (string fileName in fileStorage.GetFileNames("images//*.*"))
            {
                if (fileName == null)
                    break;
                string filepath = System.IO.Path.Combine("images", fileName);
                using (IsolatedStorageFileStream imageStream = fileStorage.OpenFile(filepath, FileMode.Open, FileAccess.Read))
                {
                    var imageSource = PictureDecoder.DecodeJpeg(imageStream);
                    BitmapImage bitmapImage = new BitmapImage();
                    bitmapImage.SetSource(imageStream);
                    vltBitmapImage.Add(bitmapImage);

                }
            }
          this.vaultbox.ItemsSource = vltBitmapImage;

選択した画像を削除したい(複数選択可能)

     if (vaultbox.SelectedItems.Count != 0)
        {
            MessageBoxResult m = MessageBox.Show("Files will be deleted forever", "Are you sure?", MessageBoxButton.OKCancel);
            if (m == MessageBoxResult.Cancel)
                vaultbox.SelectedIndex = -1;
            else if(m==MessageBoxResult.OK)
            {
                foreach (BitmapImage item in vaultbox.SelectedItems)
                {
                    //what should i do here?
                }
            }
        }
        else
            MessageBox.Show("No file selected");
4

1 に答える 1

0

接続画像-ファイル名を保存する必要があります。

例えば:

public class ImageToName
{
   public BitmapImage Image {get;set;}
   public string FileName {get;set;}
}

リストは次のように変更されます。

List<ImageToName> vltBitmapImage = new List<ImageToName>();

そして、この方法でリストに記入します。

 //read file
 var imageSource = PictureDecoder.DecodeJpeg(imageStream);
 BitmapImage bitmapImage = new BitmapImage();
 bitmapImage.SetSource(imageStream);
 var item = new ImageToName {Image = bitmapImage , Name = fileName };
 vltBitmapImage.Add(item);

ListBox宣言を変更する必要があります

 <ListBox.ItemTemplate>
   <DataTemplate>
   <Image Source={Binding Image}/>
   </DataTemplate>
 </ListBox.ItemTemplate>

そのため、選択したアイテムからファイル名を取得できるようになります。

于 2012-10-07T16:45:22.117 に答える