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 :

[WPF] listview at combobox


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Par défaut [WPF] listview at combobox
    Salut,

    j'ai fait un listView dans une fenêtre wpf contenant des textbox et ça marche très bien.

    je veux mettre un combobox à la place du textbox l'ajout c'est fait mais le probleme régide dans la mise en place de la liste contenu dans le combobox.
    (la liste a partir duquel l'utilisateur doit choisir un element).

    Merci.

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Oui mais quel est le pb ?

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Par défaut
    Salut,

    Le problème réside dans la mise en place de la liste contenue dans le combobox a partir de la quelle l'utilisateur peut choisir un élément.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Une ComboBox se remplit via la propriété ItemsSource par exemple. Ex :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    maComboBox.ItemsSource = new ObservableCollection<string>() { { "Item1" }, { "Item2" } };

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Par défaut
    Désolé, il parait que j'ai pas bien expliqué ma question.

    Le problème c'est que je peux pas identifier le combobox contenu dans un listview au niveau du fichier .xaml.cs

    le code xaml est le suivant:

    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
     
    <Window x:Class="Telnet.hcTT.MeetingReportPlugin.winSamplePlugin"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Compte Rendu de réunion MOM" Height="694" Width="787">
        <Window.Resources>
     
            <DataTemplate x:Key="trigrammeTemplate">
                <ComboBox Text="{Binding Path=Trigramme}" Width="100" Name="comboBoxTrigramme"></ComboBox>
            </DataTemplate>
     
     
        </Window.Resources>
        <Grid>
    <ListView ItemsSource="{Binding}" Margin="10,10,10,10" Name="listViewParticipant" Height="374" Width="472" Canvas.Left="33" Canvas.Top="13">
     
     
                            <ListView.View>
                                <GridView ColumnHeaderTemplate="{StaticResource BlueHeader}">
     
                                    <GridViewColumn Header="Trigramme" CellTemplate="{StaticResource trigrammeTemplate}" />
                                </GridView>
                            </ListView.View>
                        </ListView>
    </Grid>
    </Window>
    Au niveau du fichier .xaml.cs je peux pas voir le combobox contenu dans la listview.

    Merci pour votre aide.


  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    Tu peux passer par l'événement Initialized ou Loaded de la combobox et ainsi y accéder via le paramètre sender.


    Sinon j'utilise personnellement le code suivant pour accéder à une checkbox générée de la même façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ListViewItem lvi = lv_element2.ItemContainerGenerator.ContainerFromIndex(i) as ListViewItem;
                    ContentPresenter cp = lvi.FindVisualChild<ContentPresenter>();
                    CheckBox cb = cp.ContentTemplate.FindName("chkb_relation", cp) as CheckBox;
    Où lv_element2 est ma ListView, i est l'index de la ligne qui m'intéresse dans mon ListView, et chkb_relation est la valeur de l'attribut name dans le DataTemplate utilisé comme CellTemplate

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Ok. Je me disais bien que ça devait être plus compliqué que ça

    Tu devrais pouvoir passer par un ObjectDataProvider :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Window.Resources>
      <ObjectDataProvider x:Key="odpCombo" />
     
      <DataTemplate x:Key="trigrammeTemplate">
        <ComboBox DataContext={Binding Source={StaticResource odpCombo}} ItemsSource="{Binding}" Width="100" Name="comboBoxTrigramme"></ComboBox>
      </DataTemplate>
     
    </Window.Resources>

    Et dans le code C#, tu récupères ton ObjectDataProvider et tu le défini avec ta liste d'items que tu veux voir dans ta ComboBox :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ObservableCollection<string> obsCombo = 
        new ObservableCollection<string>() { { "Item1" }, { "Item2" } };
     
    ObjectDataProvider odpCombo = this.FindResource( "odpCombo" ) as ObjectDataProvider;
    if( odpCombo != null ){
      odpCombo.ObjectInstance = obsCombo;
    }

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

Discussions similaires

  1. [WPF] textbox ou combobox dans un listview
    Par modafine dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 14/08/2008, 10h37
  2. [WPF] Listview tri et databinding
    Par Jérem22 dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 26/09/2007, 14h08
  3. [WPF]DataTrigger sur ComboBox
    Par guitoux1 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 20/06/2007, 10h31
  4. [VB6][ListView] ListView et ComboBox
    Par gwendo dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 01/06/2007, 18h49
  5. [C#]ListView et combobox
    Par fafa139 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/05/2006, 09h49

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