将文件绑定到longlistselector

时间:2013-05-03 15:08:56

标签: xaml binding longlistselector

按照在线教程,尝试学习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();
    }

1 个答案:

答案 0 :(得分: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());

确保你有绑定