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 :

Utiliser l'évenement Click d'un bouton pour modifier la visibilité d'un ItemList


Sujet :

Windows Presentation Foundation

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 232
    Points : 94
    Points
    94
    Par défaut Utiliser l'évenement Click d'un bouton pour modifier la visibilité d'un ItemList
    Bonjour

    j'ai créé plusieurs DataTemplate (via un TemplateSelector) pour afficher les items d'une listbox.

    pour une certaine raison je voudrai rendre invisible des items par un click de bouton :bt1

    voici l'un des DataTemplate :
    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
     
    <DataTemplate   x:Key="view3"   >
                <Canvas Background="Transparent">
     
                    <Path  Stroke="Green" Fill="Black" Data="{Binding Path=mydata, Mode=TwoWay}"  >
     
     
                    </Path>
     
                </Canvas>
     
     <DataTemplate.Triggers>
                    <Trigger ????????????  ElementName=bt1   Path=IsClicked = value=True
                </DataTemplate.Triggers>
            </DataTemplate>

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2013
    Messages : 51
    Points : 72
    Points
    72
    Par défaut
    Plutôt qu'un bouton, il vaudrait mieux utiliser une checkbox pour cacher ou montrer les items.

    Il faut nommer la checkbox (x:Name="..."), créer un itemcontainerstyle dans la listbox (targettype = ListBoxItem), mettre un setter sur la propriété Visibility dans ce style avec pour value de setter un binding sur IsChecked de la checkbox (elementname='namedelacheckbox') sachant qu'il faut un bindingconverter de bool vers visibility.

    J'espère que c'est clair .

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 232
    Points : 94
    Points
    94
    Par défaut
    sa marche avec la CheckBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      <DataTrigger Binding="{Binding ElementName=bt1 ,Path=IsChecked }" Value="True">
                        <Setter TargetName="path2" Property ="Visibility"  Value="Hidden"/>
                    </DataTrigger>
    merci, mais pour le Bouton?

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2013
    Messages : 51
    Points : 72
    Points
    72
    Par défaut
    Il faut utiliser un ToggleButton plutôt qu'un Button. Il a une propriété IsChecked comme la CheckBox et reste pressé.

  5. #5
    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
    j'ai utilisé les storyboards moi pour faire cela avec un button :


    Mon xaml :

    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
     
     <DockPanel>
                    <DockPanel.Triggers>
                        <EventTrigger RoutedEvent="Button.Click" SourceName="ButtonNouveau">
                            <BeginStoryboard Name="StoryNouveau" Storyboard="{StaticResource PressButtonNouveau}">
     
                            </BeginStoryboard>
                        </EventTrigger>
                    </DockPanel.Triggers>
                    <Button ToolTip="Nouvelle Matiere" x:Name="ButtonNouveau" Command="{Binding NouveauCommand}"  BorderBrush="{x:Null}" Background="{x:Null}" Margin="3" Width="24" Height="24" HorizontalAlignment="Right">
     
                        <TextBlock>
                        <Image Source="/Apeiron;component/Utils/Images/add_file.png" Height="20" RenderOptions.BitmapScalingMode="HighQuality"/>
                        </TextBlock>
                    </Button>
     
     
                </DockPanel>

    Mon fichier ressources :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      <Storyboard x:Key="PressButtonNouveau">
            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextboxMatiere"
                                                   Storyboard.TargetProperty="(UIElement.Visibility)">
                <DiscreteObjectKeyFrame KeyTime="00:00:00"
                                                             Value="{x:Static Visibility.Visible}" />
     
            </ObjectAnimationUsingKeyFrames>
    </Storyboard>
    TextboxMatiere à changer par ce que tu as nommé dans ton xaml (une textbox ou autre qui à la propriété Visibility)

    Du coup tu peux te faire plein de scénarios sans code behind ni code c#

Discussions similaires

  1. [XL-2003] Boutons pour modifier format cellule (+ merge) et insérer texte
    Par centau dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/11/2011, 15h48
  2. Réponses: 21
    Dernier message: 10/08/2009, 15h52
  3. click sur un bouton pour commande executée
    Par fred1599 dans le forum Tkinter
    Réponses: 14
    Dernier message: 13/12/2007, 17h24
  4. Réponses: 60
    Dernier message: 23/08/2007, 09h45
  5. boutons pour modifier le tri dans un form
    Par @rkane dans le forum Access
    Réponses: 2
    Dernier message: 09/09/2006, 13h27

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