音乐播放器之加载我的音乐
1.引言
在后台完成歌曲的读取之后,那么应该考虑如何将读取到歌曲以一种用户友好的方式呈现到页面中。在这里,我使用ListView控件的方式,通过数据绑定的方式加载到页面之中。
2.ListView控件的使用
2.1 ListView控件的介绍
LitsView控件是Windows10里面一个高效列表控件,功能上要比ListBox控件更强大,对我个人而言,ListView可以通过SelectionModes属性来设置在点击时候不会显示被点击过的样式是我比较青睐ListView的原因。
2.2 ListView控件的具体使用
<ListView FontSize="22" x:Name="LstViewPlayList" HorizontalAlignment="Left" Margin="0,5,10,1" VerticalAlignment="Top" Width="280" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Disabled" IsItemClickEnabled="True" ItemClick="LstViewPlayList_ItemClick" SelectionMode="None">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Height="24">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="48"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<FontIcon FontFamily="Segoe MDL2 Assets" Glyph="" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="-14,0,0,0" Width="48" Height="20" />
<TextBlock Grid.Column="1" Text="{Binding Title}" Margin="-8,0,0,0" VerticalAlignment="Center" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
ListView控件的模板也可以有另外一种写法:将DataTemplate放在页面上的资源上,将资源的Key值取为MusicItemplate,为ListView的Itemplate设置为
{StaticResources MusicItemplate}就可以了。
2.3 为ListView控件绑定数据
重载MyMusicPage的OnNavigatedTo方法,将SongManager中读取的歌曲集合赋值给ListView的ItemsSource就可以了,代码如下:
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
this.Loading.IsActive = true;
songs = await SongManager.BuildSongsAsync();
LstViewPlayList.ItemsSource = songs;
this.Loading.IsActive = false;
}
- 说明:songs是存放Song类型的IList集合,为MyMusicPage类的一个私有字段,外界可以通过Songs属性访问,但是不可以重新赋值,这样做是为了便于与其他页面交换歌曲数据,而不是再次从安装包中读取。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端