Exemple #1
0
        /// <summary>
        /// Méthode servant à ouvrir la fenêtre pour modifier un participant
        /// </summary>
        private void miModifier_Click(object sender, RoutedEventArgs e)
        {
            // Le sender est le menu item
            MenuItem mi = sender as MenuItem;

            // On va chercher le parent du menu item (c'est donc un ContextMenu)
            ContextMenu cm = mi.Parent as ContextMenu;

            // Avec le context menu, on peut trouver la datagrid qui a "fabriqué" le context menu
            DataGrid dg = cm.PlacementTarget as DataGrid;

            // On peut ainsi aller chercher le joueur à modifier à partir de la datagrid (le SelectedItem)
            Joueur j = dg.SelectedItem as Joueur;

            // Le deuxième paramètre sert à passer la liste des joueurs (sauf le joueur courant) pour tester les cas d'unicité
            AjouterParticipant ap = new AjouterParticipant(j, (DataContext as Tournoi).LstJoueurs.Where(x => x != j).ToList());

            ap.ShowDialog();

            // Si on accepte la modification..
            if (ap.LeJoueur != null)
            {
                // Trouver l'index de j
                int index = ((Tournoi)DataContext).LstJoueurs.IndexOf(j);

                // Modifier le joueur à cet index
                ((Tournoi)DataContext).LstJoueurs[index] = ap.LeJoueur;
            }
        }
Exemple #2
0
        /// <summary>
        /// Méthode servant à ouvrir la fenêtre pour ajouter un participant manuellement
        /// </summary>
        private void btnAddParticipant_Click(object sender, RoutedEventArgs e)
        {
            // Créer la fenêtre
            // Le deuxième paramètre sert à passer la liste des joueurs (sauf le joueur courant) pour tester les cas d'unicité
            AjouterParticipant ap = new AjouterParticipant((DataContext as Tournoi).LstJoueurs.ToList());

            ap.ShowDialog();

            if (ap.LeJoueur != null)
            {
                ((Tournoi)DataContext).LstJoueurs.Add(ap.LeJoueur);
            }
        }