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

1

尝试这个

//add this declaration
List<FirstList> source = new List<FirstList>();
 public class FirstList
    {
        [DataMember]
        public string cItem { get; set; }

        public FirstList(string item)
        {
            this.cItem = item;
        }
    }

然后添加任何内容,您只需执行此操作。

source.Add(new FirstList(fileList.ToString());

确保你有它的绑定

于 2014-01-21T14:50:48.083 回答