0

リストボックスに曲のリストを表示しています メディア要素をバインドしていますが、songs.cs ファイルでメディア要素名のインスタンスを取得できず、曲を再生できません

<ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <MediaElement Name="Player"  Source="{Binding SongUrl}" AutoPlay="False"/>
                                 <Button  Name="Click" Click="Play_Click"  Content="Button"/>
                                <StackPanel Width="150" Height="50">
                                    <TextBlock Text="{Binding SongName}" TextWrapping="Wrap" Style="{StaticResource PhoneTextSubtleStyle}"  TextAlignment="Center" Foreground="Red"  FontSize="16"/>
                                </StackPanel>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>

Songs.cs の例:

  private void Play_Click(object sender, RoutedEventArgs e)
    {
      Player.play(); (unable to get Media Element name) 
    }
4

1 に答える 1

2

一度に 1 つのサウンドしか再生しないため、メディア プレーヤーを ItemTemplate 内に配置しないでください (アイテムごとにメディア要素を用意すると費用がかかります)。そのため、MEdiaaPlayer を外側に移動し、ボタンをクリックすると次のようになります。

private void Play_Click(object sender, RoutedEventArgs e)
{
   Button button=sender as Button;
   Player.Source=((Item)button.DataContext).SongUrl
  Player.play(); (unable to get Media Element name) 
}
于 2013-09-17T19:02:21.093 に答える