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

Windows Presentation Foundation Discussion :

Binding sur "Items" dans le GroupStyle qui ne se met pas à jour si plusieurs items


Sujet :

Windows Presentation Foundation

  1. #1
    Membre confirmé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Points : 598
    Points
    598
    Par défaut Binding sur "Items" dans le GroupStyle qui ne se met pas à jour si plusieurs items
    Bonjour,

    Voilà j'ai appliqué un GroupStyle sur ma ListView, et dedans j'affiche la somme d'une certaines propriétés des items, que je calcule avec un Converter.

    Code xml : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <ListView.GroupStyle>
        <GroupStyle>
            <GroupStyle.ContainerStyle>
                <Style TargetType="{x:Type GroupItem}">
                    <Setter Property="Margin" Value="0,0,0,5"/>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GroupItem}">
                                <Expander IsExpanded="True" BorderBrush="#FFA4B97F" BorderThickness="0,0,0,1">
                                    <Expander.Resources>
                                        <converter:SumPortionsConverter x:Key="converterSumPortions"/>
                                    </Expander.Resources>
                                    <Expander.Header>
                                        <DockPanel>
                                            <TextBlock FontWeight="Bold" Width="270" Margin="5,0,0,0">
                                                <TextBlock.Text>
                                                    <MultiBinding StringFormat="{}{0} : {1}">
                                                        <Binding Path="Name"/>
                                                        <Binding Path="ItemCount"/>
                                                    </MultiBinding>
                                                </TextBlock.Text>
                                            </TextBlock>
                                            <TextBlock FontWeight="Bold">
                                                <TextBlock.Text>
                                                    <Binding Path="Items" Converter="{StaticResource converterSumPortions}" StringFormat="{}Total : {0} portions" />
                                                </TextBlock.Text>
                                            </TextBlock>
                                        </DockPanel>
                                    </Expander.Header>
                                    <Expander.Content>
                                        <ItemsPresenter />
                                    </Expander.Content>
                                </Expander>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </GroupStyle.ContainerStyle>
        </GroupStyle>
    </ListView.GroupStyle>

    Problème : au premier affichage la somme se fait normalement.

    Si je modifie la propriété d'un item, dans un groupe qui ne contient qu'un seul item, la somme totale se met bien à jour (le Converter est bien appellé).

    Si je modifie la propriété d'un item, dans un groupe qui contient plusieurs items (cas le plus fréquent), le Converter n'est jamais appelé et la somme totale, jamais mise à jour.

    Est-ce qu'il y a quelque chose qui m'aurait échappé?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Tu utilises des objets métiers ? Ceux-ci implémentent bien INotifyPropertyChanged ?

  3. #3
    Membre confirmé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Points : 598
    Points
    598
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Tu utilises des objets métiers ? Ceux-ci implémentent bien INotifyPropertyChanged ?
    J'utilise Entity Framework, dont les objets implémentent bien INotifyPropertyChanged. Et la propriété modifiée est scalaire.

Discussions similaires

  1. ListView dans une boite de dialogue qui ne se met pas à jour
    Par Invité dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 26/03/2012, 11h16
  2. Page web hébergée sur voila qui ne se met pas à jour ?
    Par Kyti dans le forum Hébergement
    Réponses: 4
    Dernier message: 21/02/2009, 17h38
  3. Réponses: 14
    Dernier message: 08/07/2008, 10h36

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