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

C# Discussion :

[WPF] Binding d'une colonne de ListView sur un Button


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [WPF] Binding d'une colonne de ListView sur un Button
    Bonjour à tous,

    C'est encore moi avec mes questions de débutants :p !

    Mon problème est "simple", j'ai une listview, dans laquelle je définie une Grid View et ensuite je définie un template pour chaque colonne.

    Dans le cas qui m'intéresse l'une des colonnes est "templaté" en TextBlock et j'aimerai que la valeur de celle ci soit bindé sur un bouton (qui fait partie d'une autre colonne de la listView).

    En clair je veux que quand je click sur le bouton la valeur contenu dans le textblock s'incrémente. Ca doit pas être très difficile mais n'empèche que j'arrive pas à m'en sortir ...

    Pour illuster mon propos, un bout de code :

    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
    <ListView MaxWidth="612" ScrollViewer.HorizontalScrollBarVisibility="Disabled" x:Name="SupermarketDetailgrid" Margin="128,40,0,-40" Focusable="False" BorderThickness="0" ItemsSource="{Binding Tables[0]}">
                <ListView.View>
                    <GridView ScrollViewer.HorizontalScrollBarVisibility="Disabled">
                        [...]
                         <GridViewColumn Header="Nombre" Width="60">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock VerticalAlignment="Center" Text="0" />
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        [...]
                        <GridViewColumn Header="Quantité" Width="100">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <Grid  Margin="0,0,0,0" Width="100">
                                        <Button Margin="0,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Height="29" Width="85" Click="ButtonPlus_Click" >+</Button>
                                        <Button Margin="0,30,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Height="29" Width="85" Click="ButtonMoins_Click">-</Button>
                                    </Grid>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                         [...]
                     </GridView>
                </ListView.View>
            </ListView>
    Et une image du programme :




    En vous remerciant d'avance pour votre aide.


    Charles

  2. #2
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut
    Salut,
    tu fais quoi dans le corps de tes "btn_Click" ? Tu incrémentes une propriété d'un autre objet ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bah justement j'aimerai bien, mais je ne sais pas comment y accéder ...

  4. #4
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut
    OK, alors tu as plusieurs manières de procéder ; par exemple tu peux créer un contrôle dérivé de "Button", rajouter une propriété de dépendance du genre "Quantité" de type 'int', et dans ton template faire un binding en mode twoway du champ concerné vers celle-ci. Tu bindes aussi au passage la propriété Text de ton textblock pour afficher la quantité en cours.

    Dans la classe de ton bouton, tu surcharges la méthode 'OnClick' et dans le corsps de cette méthode tu incrémentes/décrémentes la propriété 'Quantité'.

    AUtre solution (moins performante mais tu n'as pas à rajouter de classe), tu chopes un évènement 'Loaded' d'un élément parent, et tu accèdes au bouton par la méthode Template.FindName, pour t'abonner à son évènement Click.

Discussions similaires

  1. Une colonne de trop sur ListView
    Par mithrendil dans le forum C#
    Réponses: 1
    Dernier message: 05/09/2011, 11h59
  2. ListView, Binding d'une colonne à une autre
    Par amandinerenard dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 22/02/2008, 14h27
  3. [VBA-E] Minimum d'une colonne avec condition sur autre colonne
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 17h01
  4. Copie d'une colonne de cellules sur une autre feuille
    Par maxou59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2006, 10h06
  5. [VBA-Excel]Supprimer une colonne entiere basee sur une cellule
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2006, 22h08

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