オンライン チュートリアルに従って、Win Phone 8 を学習しようとしています。チュートリアルでは、男は ListBox を使用してファイルを表示していますが、これは私にとってはうまく機能しています。
ただし、LongListSelector を使用することになっていると思ったので、それを追加しました。しかし、何も表示されません。
マークアップの最初に LongListSelector を配置すると、エミュレーターでアプリを実行したときにどちらも表示されないため、LongListSelector のバインドから例外が発生していると思います。理由はわかりませんが。
ボタンをクリックしてディレクトリ内のファイルを読み取り、それらを表示するだけです。
<StackPanel x:Name="ContentPanel" Margin="12,0,12,0" Grid.Row="1" >
<Button Content="Show files" Click="Button_Click_1"/>
<ListBox x:Name="lb">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
<Image x:Name="img" Source="{Binding Path}" Width="100" Height="100"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<phone:LongListSelector HorizontalAlignment="Left"
x:Name="llsFiles"
ItemTemplate="{StaticResource FilesDataTemplate}"
/>
</StackPanel>
および LLS テンプレート:
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="FilesDataTemplate">
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
次に、分離コード:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
GetPackageFiles();
}
private async Task GetPackageFiles()
{
//Get the folder where the app is installed on the phone.
var installFolder = Package.Current.InstalledLocation;
var imagesFolder = await installFolder.GetFolderAsync("Images");
var fileList = await imagesFolder.GetFilesAsync();
lb.ItemsSource = fileList;
llsFiles.ItemsSource = fileList.ToList();
}