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]Masquer des colonnes d'une ListView


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Par défaut [WPF]Masquer des colonnes d'une ListView
    Bonjour,

    Objectif:

    J'ai une page XAML(wpf) de base, et selon l'utilité que je vais en avoir je vais cacher certaines colonnes de la listView et d'autres fois je vais en cacher d'autres ( de colonnes).
    j'ai lu comme solution mettre la taille des colonnes a zéro , super comme idée! Mais le soucis il est avant...comment sélectionner une colonne ?

    Je suis allé sur MSND et sur d'autres tutos mais rien à faire, je n'ai pas accès aux "propriétées et fonctions" qu'ils proposent.

    Impossible de sélectionner une colonne par son numéro

    "listView1.Columns[x]" Ne marche pas

    Impossible dans mon code xaml de donner un "name" à mes colonnes.

    Les tutos proposent de passer la listview en mode "details", parfait ! mais cela ne fonctionne visiblement que pour les Windows.Forms or ma listView est une Windows.Controls, et oui je suis en wpf.

    Un truc doit m'échapper, mais quoi ^^.
    Mon code Xaml au cas ou :
    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
    <ListView Margin="198,323,18,12" Name="listView1" ItemsSource="{Binding C_MatiereCollection}" Width="1042" >
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Libellé" Width="247" DisplayMemberBinding="{Binding Libelle}"/>
                        <GridViewColumn Header="Prix" Width="97"  DisplayMemberBinding="{Binding PrixAUnite}"/>
                        <GridViewColumn Header="M.O." Width="75" DisplayMemberBinding="{Binding MainOeuvreAUnite}"/>
                        <GridViewColumn Header="Q.Mini" Width="80" DisplayMemberBinding="{Binding QuantiteMini}"/>
                        <GridViewColumn Header="Coef.P." Width="50" DisplayMemberBinding="{Binding CoefficientPerte}"/>
                        <GridViewColumn Header="Gamme" Width="125" DisplayMemberBinding="{Binding Gamme}"/>
                        <GridViewColumn Header="Type" Width="130" DisplayMemberBinding="{Binding Type}"/>
                        <GridViewColumn Header="Largeur" Width="95" DisplayMemberBinding="{Binding Largeur}"/>
                        <GridViewColumn Header="Epaisseur" Width="95" DisplayMemberBinding="{Binding Epaisseur}"/>
                    </GridView>
                </ListView.View>
            </ListView>
    Un des multiples codes qui appel cette page où ma listview1 est présente.
    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
    private void MenuItem_Modif_Pilette_Click(object sender, RoutedEventArgs e)
    {
        NouvellePageMatiere(6, 1);//6 = NumMatiere et 1 = NumUnité
        #region Verouillage de certaines options
        PageActuelle.ModificationMatiereActuelle.comboBoxGamme.SelectedIndex = 2;
        PageActuelle.ModificationMatiereActuelle.comboBoxType.SelectedIndex = 2;
        PageActuelle.ModificationMatiereActuelle.comboBoxGamme.IsEnabled = false;
        PageActuelle.ModificationMatiereActuelle.comboBoxType.IsEnabled = false;
        PageActuelle.ModificationMatiereActuelle.textBoxCoefPerte.IsEnabled = false;
        PageActuelle.ModificationMatiereActuelle.textBoxPrix.IsEnabled = false;
        PageActuelle.ModificationMatiereActuelle.buttonAjout.IsEnabled = false;
        PageActuelle.ModificationMatiereActuelle.buttonSuppression.IsEnabled = false;
        PageActuelle.ModificationMatiereActuelle.BoutonAjoutVerouille = true;
        PageActuelle.ModificationMatiereActuelle.BoutonSuppressionVerouille = true;
        PageActuelle.ModificationMatiereActuelle.textBoxLibelle.IsEnabled = false;
        //La je voudrais pouvoir lui dire je cache certaines colonnes.... Mais je n'y arrive pas.
        #endregion
    }
    Merci de m'avoir lu.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Par défaut Solution
    J'ai du poser une colle.


    SOLUTION

    J'ai fini par trouver une solution a mon problème
    Ma ListView en XAML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <ListView Margin="198,323,18,12" Name="listView1" ItemsSource="{Binding C_MatiereCollection}" Width="1042" >
     </ListView>
    Ma fonction dans le cs de ma page xaml qui génère les colonnes selon l'état des textbox.
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    public void CreeGridview()
           {
               GridView myGridView = new GridView();
               #region Colonne Libelle
               if (true)
               {
                   GridViewColumn Colonne1 = new GridViewColumn();
                   Colonne1.DisplayMemberBinding = new System.Windows.Data.Binding("Libelle");
                   Colonne1.Header = "Libelle";
                   Colonne1.Width = 247;
                   myGridView.Columns.Add(Colonne1);
               }
               #endregion
               #region Prix
               if (textBoxPrix.IsEnabled)
               {
                   GridViewColumn Colonne2 = new GridViewColumn();
                   Colonne2.DisplayMemberBinding = new System.Windows.Data.Binding("PrixAUnite");
                   Colonne2.Header = "Prix";
                   Colonne2.Width = 60;
                   myGridView.Columns.Add(Colonne2);
               }
               #endregion
               #region Main oeuvre
               if (textBoxMainOeuvre.IsEnabled)
               {
                   GridViewColumn Colonne3 = new GridViewColumn();
                   Colonne3.DisplayMemberBinding = new System.Windows.Data.Binding("MainOeuvreAUnite");
                   Colonne3.Header = "MainOeuvre";
                   Colonne3.Width = 90;
                   myGridView.Columns.Add(Colonne3);
               }
               #endregion
               #region Quantité Mini.
               if (textBoxQuantiteMini.IsEnabled)
               {
                   GridViewColumn Colonne4 = new GridViewColumn();
                   Colonne4.DisplayMemberBinding = new System.Windows.Data.Binding("QuantiteMini");
                   Colonne4.Header = "Quantité Mini.";
                   Colonne4.Width = 100;
                   myGridView.Columns.Add(Colonne4);
               }
               #endregion
               #region Coef Perte.
               if (textBoxCoefPerte.IsEnabled)
               {
                   GridViewColumn Colonne5 = new GridViewColumn();
                   Colonne5.DisplayMemberBinding = new System.Windows.Data.Binding("CoefficientPerte");
                   Colonne5.Header = "Cœf. Perte";
                   Colonne5.Width = 85;
                   myGridView.Columns.Add(Colonne5);
               }
               #endregion
               #region Coefficient
               if (textBoxCoefficient.IsEnabled)
               {
                   GridViewColumn Colonne6 = new GridViewColumn();
                   Colonne6.DisplayMemberBinding = new System.Windows.Data.Binding("Coefficient");
                   Colonne6.Header = "Cœfficient";
                   Colonne6.Width = 80;
                   myGridView.Columns.Add(Colonne6);
               }
               #endregion
               #region Gamme
               if (comboBoxGamme.IsEnabled)
               {
                   GridViewColumn Colonne7 = new GridViewColumn();
                   Colonne7.DisplayMemberBinding = new System.Windows.Data.Binding("Gamme");
                   Colonne7.Header = "Gamme";
                   Colonne7.Width = 125;
                   myGridView.Columns.Add(Colonne7);
               }
               #endregion
               #region Type
               if (comboBoxType.IsEnabled)
               {
                   GridViewColumn Colonne8 = new GridViewColumn();
                   Colonne8.DisplayMemberBinding = new System.Windows.Data.Binding("Type");
                   Colonne8.Header = "Type";
                   Colonne8.Width = 130;
                   myGridView.Columns.Add(Colonne8);
               }
               #endregion
               #region Largeur
               if (textBoxLargeur.IsEnabled)
               {
                   GridViewColumn Colonne9 = new GridViewColumn();
                   Colonne9.DisplayMemberBinding = new System.Windows.Data.Binding("Largeur");
                   Colonne9.Header = "Largeur";
                   Colonne9.Width = 85;
                   myGridView.Columns.Add(Colonne9);
               }
               #endregion
               #region Epaisseur
               if (textBoxEpaisseur.IsEnabled)
               {
                   GridViewColumn Colonne10 = new GridViewColumn();
                   Colonne10.DisplayMemberBinding = new System.Windows.Data.Binding("Epaisseur");
                   Colonne10.Header = "Epaisseur";
                   Colonne10.Width = 85;
                   myGridView.Columns.Add(Colonne10);
               }
               #endregion
               #region Longueur
               if (textBoxLongueur.IsEnabled)
               {
                   GridViewColumn Colonne11 = new GridViewColumn();
                   Colonne11.DisplayMemberBinding = new System.Windows.Data.Binding("Longueur");
                   Colonne11.Header = "Longueur";
                   Colonne11.Width = 85;
                   myGridView.Columns.Add(Colonne11);
               }
               #endregion
               #region Volume
               if (textBoxLargeur.IsEnabled && textBoxEpaisseur.IsEnabled && textBoxLongueur.IsEnabled)
               {
                   GridViewColumn Colonne12 = new GridViewColumn();
                   Colonne12.DisplayMemberBinding = new System.Windows.Data.Binding("Volume");
                   Colonne12.Header = "Volume";
                   Colonne12.Width = 75;
                   myGridView.Columns.Add(Colonne12);
               }
               #endregion
               listView1.View = myGridView;
     
           }
    Ma fonction qui appel ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void MenuItem_Modif_Serrure_Click(object sender, RoutedEventArgs e)
           {
               NouvellePageMatiere(2, 0);//2 = NumMatiere et 0 = NumUnité
               #region Verouillage de certaines options
               PageActuelle.ModificationMatiereActuelle.textBoxCoefPerte.IsEnabled=false;
               PageActuelle.ModificationMatiereActuelle.textBoxLargeur.IsEnabled = false;
               PageActuelle.ModificationMatiereActuelle.textBoxEpaisseur.IsEnabled = false;
               PageActuelle.ModificationMatiereActuelle.textBoxLongueur.IsEnabled = false;
               PageActuelle.ModificationMatiereActuelle.textBoxQuantiteMini.IsEnabled = false;
               PageActuelle.ModificationMatiereActuelle.textBoxCoefficient.IsEnabled = false;
               #endregion
               PageActuelle.ModificationMatiereActuelle.CreeGridview();
           }

Discussions similaires

  1. Empêcher le redimensionnement des colonnes d'une ListView
    Par Thomas Lebrun dans le forum Contribuez
    Réponses: 1
    Dernier message: 24/01/2012, 10h43
  2. Empêcher le redimensionnement des colonnes d'une ListView
    Par Thomas Lebrun dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2010, 19h25
  3. Taille dynamique des colonnes sur une ListView
    Par Julien_G dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 07/05/2009, 11h17
  4. insertion au niveau des colonnes d'une listviews
    Par moha1984 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/01/2008, 02h53
  5. [C#] Changer les couleurs des titres colonnes d'une listView
    Par ExSter dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/04/2007, 21h02

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