2
试着学习Win Phone 8,以下是一个在线教程。在教程中,这个人使用ListBox来显示文件,这对我来说工作正常。将文件绑定到longlistselector
但是,我认为我们应该使用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();
}
我觉得我一头栽进这是怎么回事结合,但不明白它。出于某种原因,取消HorizontalAlignment属性会使列表呈现。不确定绑定是否发生,但是输出完全被压扁,或者实际上导致绑定失败。 – 2013-05-15 15:29:36