2

オンライン チュートリアルに従って、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();
    }
4

1 に答える 1