我正在尝试为 Windows Phone 7 制作自己的媒体播放器,第一步,我想显示媒体库中所有歌曲的列表以选择它们。据我了解列表框,我只需将 texblocks 命名为我的类的属性,这将是“Song”
<ListBox FontSize="30" Name="songListGUI" Height="330" Margin="0,120,0,0">
<Button Width="430" Height="60" BorderThickness="0" Margin="0" >
<Button.Content>
<StackPanel Orientation="Horizontal" Width="420" Height="auto">
<TextBlock Name="Name" Text="{Binding Name}" FontSize="22"></TextBlock>
<TextBlock Text=" - " FontSize="22"></TextBlock>
<TextBlock Name="Artist" Text="{Binding Artist}" FontSize="22"></TextBlock>
</StackPanel>
</Button.Content>
</Button>
</ListBox>
现在我想,我应该将我的歌曲列表处理到 GUI 上,我尝试这样做:
songListGUI.ItemsSource = songs;
但后来我得到一个“InvalidOperationException” - 在使用 ItemsSource 之前,项目集合必须为空。我发现了几个这样的问题,他们都创建了一个新类来显示这个内容。但我想坚持使用歌曲课程,因为它非常方便:/你知道我在这里做错了什么吗?
编辑:我刚刚找到了解决方案。不知道确切原因,但是 .xaml 中的这种变化让我很高兴 :):
<ListBox FontSize="30" Name="songListGUI" Height="330" Margin="0,120,0,0">
<ListBox.ItemTemplate>
<DataTemplate>
<Button Width="430" Height="60" BorderThickness="0" Margin="0" >
<Button.Content>
<StackPanel Orientation="Horizontal" Width="420" Height="auto">
<TextBlock Name="Name" Text="{Binding Name}" FontSize="22"></TextBlock>
<TextBlock Text=" - " FontSize="22"></TextBlock>
<TextBlock Name="Artist" Text="{Binding Artist}" FontSize="22"></TextBlock>
</StackPanel>
</Button.Content>
</Button>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
有人可以向我解释一下吗?