Wpf c# par programmation changer d'item sélectionner dans un ListView

Résolu
Bonjour, je cherche comment par programmation passer d'un item à un autre dans un ListView.
le ListView contient une liste de chansons et je veux qu'en cliquant sur un bouton il passe à la chanson suivante. voici le ode xaml

<ListView.View>
<GridView x:Name="grdChemin">
<!--<GridViewColumn />-->
<GridViewColumn Width="400" DisplayMemberBinding="{Binding Chant}" />
<GridViewColumn Width="200" DisplayMemberBinding="{Binding Chemin}"/>
</GridView>
</ListView.View>
</ListView>
<Button x:Name="button" Content="Sélection de chansons" HorizontalAlignment="Left" Margin="416,138,0,0"
VerticalAlignment="Top" Width="150" Height="53"
Click="button_Selection_Click"/>
<Button x:Name="button1" HorizontalAlignment="Left"
Margin="416,0,0,0" VerticalAlignment="Center" Width="75" Height="21"
Click="btn_Next_Click">
<Image Source="/nextBtn.png"/>
</Button>


et voici le code behind :

public partial class MainWindow : Window
{
// Création du média pour faire jouer la musique
public MediaPlayer player = new MediaPlayer();
List<string> fullFileName;
public MainWindow()
{
InitializeComponent();
}

//Cette méthode détecte les changements de chanson pour les faire jouer
public void PrintText(object sender, RoutedEventArgs e)
{
var i = lstChansons.SelectedIndex;

var chanson = ((MyItem)lstChansons.Items[i]).Chemin;

Uri myUri = new Uri(chanson);

player.Open(myUri);
player.Play();
}

// cette méthode permet de sélectionner une liste de chanson
// et les insert dans la liste
private void button_Selection_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Filter = "MP3 files (*.mp3)|*.mp3|All files (*.*)|*.*";
fileDialog.Multiselect = true;
if (fileDialog.ShowDialog() == true)
{

fullFileName = new List<string>(fileDialog.FileNames);
foreach (string fichier in fullFileName)
{
this.lstChansons.Items.Add(new MyItem
{

Chemin = fichier,
Chant = fichier.Substring(fichier.LastIndexOf(@"\") + 1)

});

}

}
}

private void btn_Next_Click(object sender, RoutedEventArgs e)
{
// Récupération de l'index du nouveau titre sélectionné
var i = lstChansons.SelectedIndex;

i++;

var chanson = ((MyItem)lstChansons.Items[i]).Chemin;

Uri myUri = new Uri(chanson);

// Faire jouer la chanson
player.Open(myUri);
player.Play();
}

}

internal class MyItem
{
public string Chant { get; set; }
public string Chemin { get; set; }
}

4 réponses

  1. De rien.
    Pense à marquer le sujet résolu
    1
    1. Merci, j'utilise déjà SelectedIndex pour savoir quel est l'item sélectionné. SelectedItem semble donner le même résultat. moi je désire pointer et sélectionner l'élément suivant afin de faire jouer la chanson suivante.
      0
      1. Merci j'ai finalement trouvé, c'était trop simple.
        0