MVVM、XAML、C#を使用したWindows8プロジェクトがあります。
ObservableCollection
私の方法の1つは、現在、Picturesフォルダー内のすべての画像を更新し、BitmapImage
形式に変換しています。これは、xamlにバインドされ、画像をで表示しますListGrid
。私が抱えている問題は、ユーザーがDoubleTappedの画像を開くことができるように、SelectedItem
プロパティを使用したいということです。これを行うには、のパスを取得する必要があります。現在、これを実行しようとすると、プロパティはnullに設定されます。私は間違って何をしましたか?ListGrid
BitmapImages
ObservableCollection
UriSource
これが私のObservableCollection「Images」にデータを取り込むメソッドです:
private async void FindRelatedImages()
{
FileOpenPicker picPicker = new Windows.Storage.Pickers.FileOpenPicker();
List<string> fileTypeFilter = new List<string>();
fileTypeFilter.Add(".png");
fileTypeFilter.Add(".jpg");
fileTypeFilter.Add(".jpeg");
fileTypeFilter.Add(".gif");
fileTypeFilter.Add(".bmp");
var queryOptions = new QueryOptions(CommonFileQuery.OrderByName, fileTypeFilter);
StorageFolder folderToGetPicsFrom = KnownFolders.PicturesLibrary;
var query = folderToGetPicsFrom.CreateFileQueryWithOptions(queryOptions);
IReadOnlyList<StorageFile> fileList = await query.GetFilesAsync();
// Process results
ObservableCollection<BitmapImage> newList = new ObservableCollection<BitmapImage>();
foreach (StorageFile file in fileList)
{
// Process file
BitmapImage src = new BitmapImage( uriSource : new Uri(file.Path));
// src.UriSource = new Uri(file.Path, UriKind.Absolute);
src.SetSource(await file.OpenAsync(FileAccessMode.ReadWrite));
newList.Add(src);
}
Images = newList;
}