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 :

Perte du SelectedItem quand ItemSource refresh()


Sujet :

Windows Presentation Foundation

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Juin 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Juin 2015
    Messages : 87
    Points : 61
    Points
    61
    Par défaut Perte du SelectedItem quand ItemSource refresh()
    Bonjour tout le monde

    Et oui j'ai encore un souci ... (pas facile d'être débutant...)

    J'ai un popup avec une ListView dedans :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
     <Popup Name="PopupEtage" Placement="Bottom" IsOpen="{Binding IsOpenOutilEtage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" PopupAnimation="Scroll"  PlacementTarget="{Binding ElementName=ButtonOutilEtage}" StaysOpen="False" Width="250">
                            <Border Background="White" BorderBrush="Gray" BorderThickness="1,1,1,1">
                                <StackPanel Margin="5,5,5,5">
     
     
                                    <ScrollViewer Grid.Row="1" Margin="10,5,0,5"
                                              HorizontalScrollBarVisibility="Auto" 
                                              VerticalScrollBarVisibility="Auto" >
                                        <ListView  Background="{x:Null}" BorderThickness="0" FontSize="10" Margin="0" SelectionMode="Single"
                                           ItemsSource="{Binding ListOutilEtage , Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True}" SelectedItem="{Binding SelectedOutilEtage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True" Width="auto" Height="100">
                                            <ListView.ItemContainerStyle>
                                                <Style TargetType="ListViewItem">
                                                    <Setter Property="HorizontalContentAlignment" Value="Left" />
                                                    <Style.Triggers>
                                                        <Trigger Property="IsKeyboardFocusWithin" Value="True">
                                                            <Setter Property="IsSelected" Value="True"/>
                                                        </Trigger>
                                                    </Style.Triggers>
                                                </Style>
                                            </ListView.ItemContainerStyle>
                                            <ListView.View>
                                                <GridView ColumnHeaderContainerStyle="{StaticResource MasqueHeader}">
                                                    <GridViewColumn Width="100"  DisplayMemberBinding="{Binding Local}" />
                                                    <GridViewColumn Width="110">
                                                        <GridViewColumn.CellTemplate>
                                                            <DataTemplate>
                                                                <StackPanel Orientation="Horizontal">
                                                                    <Button  FontFamily="Segoe UI Symbol" Content="&#xE108;" Background="{x:Null}" Width="20"  BorderThickness="0" Foreground="#FFB9B9B9">
                                                                        <i:Interaction.Triggers>
                                                                            <i:EventTrigger EventName="Click" >
                                                                                <i:InvokeCommandAction Command="{Binding DataContext.EtageMoinsCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListView}}}" />
                                                                            </i:EventTrigger>
                                                                        </i:Interaction.Triggers>
                                                                    </Button>
                                                                    <TextBlock Text="{Binding Etage, Converter={StaticResource EtageConverter}}" Width="60" TextAlignment="Center"/>
     
                                                                    <Button  FontFamily="Segoe UI Symbol" Content="&#xE109;" Background="{x:Null}" Width="20"  BorderThickness="0" Foreground="#FFB9B9B9">
                                                                        <i:Interaction.Triggers>
                                                                            <i:EventTrigger EventName="Click" >
                                                                                <i:InvokeCommandAction Command="{Binding DataContext.EtagePlusCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListView}}}" />
                                                                            </i:EventTrigger>
                                                                        </i:Interaction.Triggers>
                                                                    </Button>
     
     
                                                                </StackPanel>
                                                            </DataTemplate>
                                                        </GridViewColumn.CellTemplate>
                                                    </GridViewColumn>
                                                </GridView>
                                            </ListView.View>
                                        </ListView>
     
                                    </ScrollViewer>
                                    <Button HorizontalAlignment="Right" Command="{Binding AppliquezEtageCommand}">
                                        <Button.Template>
                                            <ControlTemplate>
                                                <Image Source="/Apeiron;component/Utils/Images/Ok.png" Width="15" Height="15"  RenderOptions.BitmapScalingMode="HighQuality" Stretch="Fill"/>
                                            </ControlTemplate>
                                        </Button.Template>
                                    </Button>
                                </StackPanel>
                            </Border>
                        </Popup>
    Dont voici le rendu :
    Nom : Sans titre.png
Affichages : 82
Taille : 7,3 Ko

    Dont ma listview j'ai attaché 2 InvokeCommandAction pour augmenté ou diminué ma valeur :

    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
     
    public void PlusEtage()
            {
                if (SelectedOutilEtage != null)
                { 
                    if (SelectedOutilEtage.Etage <= 50 && SelectedOutilEtage.Etage >= -5)
                    {
                        SelectedOutilEtage.Etage++;
                    }
     
                       OnPropertyChanged("ListOutilEtage");
     
                }
     
            }
            public void MoinsEtage()
            {
                if (SelectedOutilEtage != null)
                {
                    if (SelectedOutilEtage.Etage <= 50 && SelectedOutilEtage.Etage >= -5)
                    {
                        SelectedOutilEtage.Etage--;
                    }
     
     
                  OnPropertyChanged("ListOutilEtage");
     
                }
     
            }
    Par contre quand je rafraîchi mon ItemSource (ListOutilEtage) afin que mes modifications soient prises en compte, je perds le SelectedItem et reviens au début de mes items de ma liste.

    Comment faire pour garder le SelectedItem actif après avoir Updater ma listview ???

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Pourquoi tu raffraichis la liste alors que tu modifies un element?

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

Discussions similaires

  1. [Débutant] Perte du curseur quand canvas.background = brush
    Par kgb1917 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 09/09/2015, 15h47
  2. [WD17] Perte du focus quand génération de pdf
    Par droliprane dans le forum WinDev
    Réponses: 6
    Dernier message: 27/09/2012, 09h39
  3. Perte fenêtre enfant (popup) sur refresh page parente
    Par vaderetro33 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2012, 10h46
  4. Perte de fonction quand on recopie
    Par Jimy6000 dans le forum Excel
    Réponses: 5
    Dernier message: 01/12/2009, 23h30
  5. perte de session avec un refresh
    Par cloridriks dans le forum Langage
    Réponses: 9
    Dernier message: 16/07/2008, 13h58

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