繁体   English   中英

将MediaPlaybackItem绑定到DataTemplate中的ListView项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM