
[英]UWP bind a ListView's item as UserControl DataTemplate
[英]Databinding MediaPlaybackItem to ListView Item in DataTemplate
您好我有以下listView:
<ListView x:Name="SongList" HorizontalAlignment="Left" Visibility="Visible" Height="615" Background="White"
Opacity="0.5" SelectedValue="selectedFile"
ItemsSource="{Binding MediaModels.MediaPlaybackItemsList , UpdateSourceTrigger=PropertyChanged}"
Margin="986,105,0,0" VerticalAlignment="Top" Width="294">
所以在我的itemSource中,我绑定了MediaPlaybackItem的列表。那一切都很好,除非我不知道如何将每个Mediaplayback项目的艺术家和标题绑定到dataTemplate:
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Border BorderBrush="#404040" BorderThickness="0,0,0,2" HorizontalAlignment="Stretch"
Width="282" Height="80">
<Grid HorizontalAlignment="Left">
<TextBlock Text="{Binding GetDisplayProperties().MusicProperties.Artist}" TextWrapping="WrapWholeWords"
Margin="82,10,10,0" />
<Grid Margin="0,0,-140,0">
<Image Source="Images/Album.png" Width="70" Height="70" Margin="0,0,350,0" />
</Grid>
</Grid>
</Border>
</StackPanel>
</DataTemplate>
MediaPlaybacKItem
类具有方法GetDisplayProperties().MusicProperties.Artist/Title/
等,该方法返回string
。 我只能通过此GetDisplayProperties
方法访问这些properties
,因此如何将其结果绑定到数据模板中?
您不能将方法绑定到这样的属性。 而是在MediaPlaybackItem
中公开一个属性,该属性返回MusicProperties
对象。
MediaPlaybackItem类
public MusicPropertiesType MusicProperties
{
get
{
return this.GetDisplayProperties().MusicProperties;
}
}
现在,您可以将其绑定到ItemTemplate
。
XAML
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Border BorderBrush="#404040" BorderThickness="0,0,0,2" HorizontalAlignment="Stretch"
Width="282" Height="80">
<Grid HorizontalAlignment="Left">
<TextBlock Text="{Binding MusicProperties.Artist}" TextWrapping="WrapWholeWords"
Margin="82,10,10,0" />
<Grid Margin="0,0,-140,0">
<Image Source="Images/Album.png" Width="70" Height="70" Margin="0,0,350,0" />
</Grid>
</Grid>
</Border>
</StackPanel>
</DataTemplate>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.