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 :

ListBox.SelectAll() & UI Refresh


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Par défaut ListBox.SelectAll() & UI Refresh
    Bonjour tout le monde,

    Alors voila le problème qui se pose a moi et dont je n'arrive pas a trouver une solution que ce soit dans ma tête ou sur le net :

    J'ai une ListBox nomme casesListBox,cette listbox a un ItemTemplate et un ItemContainerStyle redéfini.
    La partie importante ici est le ItemContainerStyle, j'ai simplement modifie la couleur du highlight pour les éléments sélectionnés.
    Tout fonctionne tres bien quand l'utilisateur clic sur un des éléments le highlight se fait correctement par contre... j''essaye d’implémenter un bouton "Tout sélectionner" et de ce que j'ai vu sur le net je peux tout simplement faire un casesListBox.SelectAll(). Et la je dis oui et non, car mes elements sont bien sélectionnés (je reçois bien l’évènement SelectionChanged) mais mon highlight qui est censé du coup apparaître sur tout mes éléments n'apparait pas.
    Derniere petite precision si je clic sur un des éléments la tout mes items deviennent "Highlight"és (a l'exception de celui que je viens de dé-sélectionné).
    Je cherche désespérément un moyen de mettre a jour mon UI si quelqu’un a une idée je prends !

    NB: Siliverlight 5, Framework 4.5

    Merci d'avance !

  2. #2
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Bonjour,

    Nous aurions plus facile de vous aider avec le code ...
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Par défaut
    Bonjour,

    je te remercie pour ton interet,
    le fait est que je n'ai pas de code a te montrer puisque je ne fais aucune operation particuliere d'ou cette longue description.

    Mais bon voila le code behind:

    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
     
     
            private void casesListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                foreach (ExtendedIdentity item in e.RemovedItems)
                {
                    ViewModelLocator.MainStatic.SelectedIdentities.Remove(item);
                }
     
                foreach (ExtendedIdentity item in e.AddedItems)
                {
                    ViewModelLocator.MainStatic.SelectedIdentities.Add(item);
               }
     
                ViewModelLocator.MainStatic.SelectedIdentities = ViewModelLocator.MainStatic.SelectedIdentities;
            }
     
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                casesListBox.SelectAll();
            }
    Et le template:

    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
     
     
    <Style x:Key="CasesListContainerStyle" TargetType="ListBoxItem">
    		<Setter Property="Padding" Value="3"/>
    		<Setter Property="HorizontalContentAlignment" Value="Left"/>
    		<Setter Property="VerticalContentAlignment" Value="Top"/>
    		<Setter Property="Background" Value="Transparent"/>
    		<Setter Property="BorderThickness" Value="1"/>
    		<Setter Property="TabNavigation" Value="Local"/>
    		<Setter Property="Template">
    			<Setter.Value>
    				<ControlTemplate TargetType="ListBoxItem">
    					<Grid Background="{TemplateBinding Background}" Margin="5">
    						<VisualStateManager.VisualStateGroups>
    							<VisualStateGroup x:Name="CommonStates">
    								<VisualState x:Name="Normal"/>
    								<VisualState x:Name="MouseOver">
    									<Storyboard>
    										<DoubleAnimation Duration="0" To=".35" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="fillColor"/>
    									</Storyboard>
    								</VisualState>
    								<VisualState x:Name="Disabled">
    									<Storyboard>
    										<DoubleAnimation Duration="0" To=".55" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="contentPresenter"/>
    									</Storyboard>
    								</VisualState>
    							</VisualStateGroup>
    							<VisualStateGroup x:Name="SelectionStates">
    								<VisualState x:Name="Unselected"/>
    								<VisualState x:Name="Selected">
    									<Storyboard>
    										<DoubleAnimation Duration="0" To=".75" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="fillColor2"/>
    										<ColorAnimation Duration="0" To="#FFAA1111" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="fillColor2" d:IsOptimized="True"/>
    										<ColorAnimation Duration="0" To="#FFAA1133" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="fillColor" d:IsOptimized="True"/>
    										<ColorAnimation Duration="0" To="#FFAA1133" Storyboard.TargetProperty="(Shape.Stroke).(SolidColorBrush.Color)" Storyboard.TargetName="FocusVisualElement" d:IsOptimized="True"/>
    									</Storyboard>
    								</VisualState>
    								<VisualState x:Name="SelectedUnfocused"/>
    							</VisualStateGroup>
    							<VisualStateGroup x:Name="FocusStates">
    								<VisualState x:Name="Focused">
    									<Storyboard>
    										<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="FocusVisualElement">
    											<DiscreteObjectKeyFrame KeyTime="0">
    												<DiscreteObjectKeyFrame.Value>
    													<Visibility>Visible</Visibility>
    												</DiscreteObjectKeyFrame.Value>
    											</DiscreteObjectKeyFrame>
    										</ObjectAnimationUsingKeyFrames>
    									</Storyboard>
    								</VisualState>
    								<VisualState x:Name="Unfocused"/>
    							</VisualStateGroup>
    						</VisualStateManager.VisualStateGroups>
    						<Rectangle x:Name="fillColor" Fill="#FFBADDE9" IsHitTestVisible="False" Opacity="0" RadiusY="1" RadiusX="1"/>
    						<Rectangle x:Name="fillColor2" Fill="#FFBADDE9" IsHitTestVisible="False" Opacity="0" RadiusY="1" RadiusX="1"/>
    						<ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}"/>
    						<Rectangle x:Name="FocusVisualElement" RadiusY="1" RadiusX="1" Stroke="#FF6DBDD1" StrokeThickness="1" Visibility="Collapsed"/>
    					</Grid>
    				</ControlTemplate>
    			</Setter.Value>
    		</Setter>
    	</Style>

Discussions similaires

  1. [Débutant] refresh d'une listbox
    Par ahmed_kh dans le forum VB.NET
    Réponses: 4
    Dernier message: 12/05/2012, 12h50
  2. listbox chargée par source de donnée, refresh
    Par d4voisin dans le forum C#
    Réponses: 19
    Dernier message: 04/05/2011, 14h55
  3. Réponses: 6
    Dernier message: 29/06/2010, 10h33
  4. Listbox et items.refresh()
    Par Tanou dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 15/02/2010, 09h40
  5. listbox datasource refresh
    Par Net dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/02/2008, 20h06

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