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