IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Accéder à un bouton se trouvant dans un DataGrid


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Par défaut Accéder à un bouton se trouvant dans un DataGrid
    Bonjour,

    Je développe une application Silverlight dans laquelle j'ai un DataGrid. Dans celui-ci, j'ai 4 colonnes qui contiennent chacune un bouton, un textbox, un progressBar et un autre textbox.

    Dans cette DataGrid, j'affiche les noms d'une List de Fichier.
    Le bouton me permet donc de supprimer la ligne dans la DataGrid mais aussi dans ma List.

    Mon problème est le suivant : Je ne vois pas comment savoir quel est le bouton de quelle ligne qui a été enclenché. Car avec le numéro de la ligne je peux la supprimer mais aussi supprimer le fichier qui est dans la List.

    Voici un screen :




    Voici le code de mon DataGrid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    	<data:DataGrid x:Name="dataGridUp" AutoGenerateColumns="False" AlternatingRowBackground="#DDE0E0">
                <data:DataGrid.Columns>
                    <data:DataGridTemplateColumn x:Name="Test" Width="Auto" Header="Delete">
                        <data:DataGridTemplateColumn.CellTemplate>
                            <DataTemplate >
                                <Button x:Name="deleteItemButton" Margin="5" Click="deleteButton_Click" Grid.Column="0" HorizontalContentAlignment="Center"> <!-- Le fameu bouton -->
                                    <Button.Content>
                                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                                            <Image Source="http://dryicons.com/images/icon_sets/stickers_icon_set/png/128x128/trash.png" Height="15" Width="15"/>
                                        </StackPanel>
                                    </Button.Content>
                                </Button>
                            </DataTemplate>
                        </data:DataGridTemplateColumn.CellTemplate>
                    </data:DataGridTemplateColumn>
     
                    <data:DataGridTextColumn Width="Auto" Binding="{Binding Filename}" Header="Filename"/>
     
                    <data:DataGridTemplateColumn Width="Auto" Header="Progression">
                        <data:DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ProgressBar Name="progressBar" Value="{Binding Progression}" Width="Auto" Maximum="100" Minimum="0" IsIndeterminate="False" Height="15" Grid.Column="2"/>
                            </DataTemplate>
                        </data:DataGridTemplateColumn.CellTemplate>
                    </data:DataGridTemplateColumn>
     
                    <data:DataGridTextColumn Width="Auto" Binding="{Binding State}" Header="State" />
     
                </data:DataGrid.Columns>
            </data:DataGrid>
    Je ne sais pas du tout comment faire, cela fait un temps fou que j'y suis dessus. Je suis desespéré

    Pouvez-vous m'aider ?

    Merci par avance,
    Guillaume

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Je suppose que tu utilises des objets métiers pour remplir ton DataGrid non ?

    Dans ton clic sur le bouton, récupères les bouton avec le paramètre sender, récupère ensuite ton DataContext (tu le casts en ton objet métier) et tu aura l'objet cliquée. Il te reste plus qu'à la supprimer de ta liste.

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Par défaut
    Merci Skyounet de ta réponse.

    Alors, les objets métiers, je sais pas vraiment ce que c'est. J'ai regardé sur le net et j'ai cru lire que c'était pour SL 3 or, je suis en 2.0

    Dans ton clic sur le bouton, récupères les bouton avec le paramètre sender, récupère ensuite ton DataContext (tu le casts en ton objet métier) et tu aura l'objet cliquée. Il te reste plus qu'à la supprimer de ta liste.
    J'ai pas compris ton explication :s

    Ensuite, j'arrive à avoir le bouton sur lequel je clic mais je ne sais pas comment avoir la textbox qui est sur la même ligne.

    Peux-tu m'aider ?

    Merci par avance,
    guillaume

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Par défaut
    Bonjour,
    Comment tu remplis ton datagrid ?
    A bientôt

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 118
    Par défaut
    Bon ben j'ai réussi à faire ce que je voulais : je suis remonté de parent en parent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private void deleteButton_Click(object sender, RoutedEventArgs e)
            {
                Button button = sender as Button;
     
                DataGridCell cell = button.Parent as DataGridCell;
     
                DataGridCellsPresenter cellPresenter = cell.Parent as DataGridCellsPresenter;
     
                FileUpload fileUpload = cellPresenter.DataContext as FileUpload;
     
                _upload.DeleteFile(fileUpload.Id);
    Merci quand même pour votre aide.

    Guillaume

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un bouton "add row" dans une datagrid
    Par mikees dans le forum Flex
    Réponses: 6
    Dernier message: 03/05/2010, 16h11
  2. [OpenOffice][Base de données] Ouvrir un formulaire B avec un bouton se trouvant dans un formulaire A
    Par frack dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 10/02/2009, 08h33
  3. Réponses: 20
    Dernier message: 17/12/2008, 11h50
  4. Accéder aux variables se trouvant dans un autre fichier
    Par towogy dans le forum Autres langages pour le Web
    Réponses: 9
    Dernier message: 18/08/2006, 15h06
  5. [VB.NET] Naviguer dans un DATAGRID a l'aide de 2 boutons
    Par stephane93fr dans le forum Windows
    Réponses: 3
    Dernier message: 13/06/2005, 12h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo