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

Résolu/Fermé
beaulem_5904 Messages postés 10 Date d'inscription dimanche 14 novembre 2021 Statut Membre Dernière intervention 13 juillet 2022 - 14 nov. 2021 à 15:57
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 14 nov. 2021 à 22:07
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; }
}
A voir également:

4 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
14 nov. 2021 à 22:07
De rien.
Pense à marquer le sujet résolu
1
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
14 nov. 2021 à 17:48
Bonsoir

merci d'avoir essayé d'utiliser les balises de code, mais comme tu peux le voir le pavé gris, c'est pas ça qui est ça.

Pour tes prochains message, merci de lire ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Pour répondre à ta question, il faut utiliser la propriété SelectedItem ou SelectedIndex.


0
beaulem_5904
14 nov. 2021 à 20:51
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
beaulem_5904
14 nov. 2021 à 21:25
Merci j'ai finalement trouvé, c'était trop simple.
0