C# 无法在本地包的gridview数据绑定上显示图像

C# 无法在本地包的gridview数据绑定上显示图像,c#,image,gridview,uwp,C#,Image,Gridview,Uwp,我有一个gridview,其中包含标题和书籍封面的数据绑定。封面书籍位于本地包中,路径名为:“files/kurikulum 2006/[用户在上一页选择的文件夹名称]/Cover”。我无法显示书籍封面,因此无法显示书籍封面,错误消息如下所示: 但对于标题,可以在gridview上显示 XAML: 如何处理 注: direktori.direktori=kurikulum 2006(或其他文件夹) direktori.Name=用户在上一页上选择的文件夹的名称我认为,不必在foreach循环中

我有一个gridview,其中包含标题和书籍封面的数据绑定。封面书籍位于本地包中,路径名为:“files/kurikulum 2006/[用户在上一页选择的文件夹名称]/Cover”。我无法显示书籍封面,因此无法显示书籍封面,错误消息如下所示:

但对于标题,可以在gridview上显示

XAML:

如何处理

注:

direktori.direktori=kurikulum 2006(或其他文件夹)


direktori.Name=用户在上一页上选择的文件夹的名称

我认为,不必在foreach循环中再次获取文件,只需使用现有的文件变量。StorageFile thumbFile=file@Saurabh我尝试用StorageFile thumbFile=file替换StorageFile thumbFile,但仍然收到相同的错误消息,并且出现相同的错误place@Rose,我找到了你的线索barry的答案对你有帮助吗?你决定了吗?
<GridView
                x:Name="itemGridView"
                AutomationProperties.AutomationId="ItemGridView"
                AutomationProperties.Name="Grouped Items"
                Margin="0,0,10,0"
                HorizontalAlignment="Center"
                ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
                SelectionMode="None"
                IsSwipeEnabled="false"
                IsItemClickEnabled="True"
                ItemClick="ItemView_ItemClick" BorderThickness="0">

                <GridView.ItemTemplate>
                    <DataTemplate>
                        <Grid Height="315" Width="200" Margin="5,10,0,0" Background="White">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>

                            <Image Grid.Row="0" Margin="10,10,10,10" Height="230" Width="180" Source="{Binding Image}" AutomationProperties.Name="{Binding Name}" />

                            <Grid Grid.Row="1" Margin="0,0,10,10" HorizontalAlignment="Left" Height="50" >
                                <ScrollViewer Margin="10,10,5,5" VerticalAlignment="Top" HorizontalAlignment="Left" Height="40" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
                                    <TextBlock Margin="0,0,10,10" Text="{Binding Name}" Foreground="Black" FontSize="25" VerticalAlignment="Center" HorizontalAlignment="Left" FontFamily="Segoe UI Black" FontWeight="SemiBold" TextAlignment="Center" TextWrapping="Wrap" Height="40" Width="auto"/>
                                </ScrollViewer>

                            </Grid>
                        </Grid>
                    </DataTemplate>
                </GridView.ItemTemplate>
            </GridView>
ObservableCollection<Book> datasource = new ObservableCollection<Book>();
            StorageFolder _folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
            _folder = await _folder.GetFolderAsync("files");
            _folder = await _folder.GetFolderAsync(direktori.Direktori);
            _folder = await _folder.GetFolderAsync(direktori.Name);
            _folder = await _folder.GetFolderAsync("cover");
            IReadOnlyList<StorageFile> _files = await _folder.GetFilesAsync(); //which returns List<StorageFile>
            foreach (StorageFile file in _files)
            {
                Book buku = new Book();
                buku.Name = file.DisplayName.ToString();
                StorageFile thumbFile;
                thumbFile = await _folder.GetFileAsync(file.DisplayName.ToString() + ".jpg");
                BitmapImage bi = new BitmapImage();
                bi.SetSource(await thumbFile.OpenAsync(FileAccessMode.Read));
                buku.Image = bi;

                datasource.Add(buku);
            }
            itemGridView.ItemsSource = datasource;
public class Book
    {
        public string Name { get; set; }

        public string Direktori { get; set; }

        public ImageSource Image { get; set; }
    }