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] Comment développer rapidement en Xaml un Detailview ?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 74
    Par défaut [WPF/Listview] Comment développer rapidement en Xaml un Detailview ?
    Bonjour,
    je souhaite mettre en place sur un écran un système de listview avec un formulaire permettant d'éditer/supprimer/ajouter un élément dans cette listview. De la même façon qu'en asp .net avec un gridview et un detailsview.

    Donc pour l'instant j'ai un xmldataprovider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
           <XmlDataProvider x:Key="PaysDataSource" XPath="ListPays">
                <x:XData>
                    <ListPays xmlns="">
                        <Pays Code="FR" Libelle="France" InfoFR="Liberté Egalité Fraternité" InfoEN="Test" DateDebut="01/10/2001" DateFin="01/10/2001"/>
                        <Pays Code="BE" Libelle="Belgique" InfoFR="Informations FR" InfoEN="Informations EN" DateDebut="01/10/2001" DateFin="01/10/2001"/>
                        <Pays Code="NL" Libelle="Netherlands" InfoFR="" InfoEN="" DateDebut="01/10/2001" DateFin="01/10/2001"/>
                    </ListPays>
                </x:XData>
            </XmlDataProvider>
    Une listview :
    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
    <ListView ItemsSource="{Binding}" Name="ListviewReference" IsSynchronizedWithCurrentItem="True" Margin="0,35,10,0" VerticalAlignment="Top" Height="200">
                        <ListView.View>
                            <GridView>
                                <GridViewColumn Header="Code" Width="50">
                                    <GridViewColumn.CellTemplate >
                                        <DataTemplate>
                                            <Label Content="{Binding XPath=@Code}"  />
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Header="Libellé" Width="75">
                                    <GridViewColumn.CellTemplate >
                                        <DataTemplate>
                                            <Label Content="{Binding XPath=@Libelle}"  />
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Header="Infos FR" Width="200">
                                    <GridViewColumn.CellTemplate >
                                        <DataTemplate>
                                            <Label Content="{Binding XPath=@InfoFR}"  />
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Header="Infos EN" Width="200">
                                    <GridViewColumn.CellTemplate >
                                        <DataTemplate>
                                            <Label Content="{Binding XPath=@InfoEN}"  />
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Header="Date début validité" Width="100">
                                    <GridViewColumn.CellTemplate >
                                        <DataTemplate>
                                            <Label Content="{Binding XPath=@DateDebut}"  />
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Header="Date fin de validité" Width="100">
                                    <GridViewColumn.CellTemplate >
                                        <DataTemplate>
                                            <Label Content="{Binding XPath=@DateFin}"  />
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Button Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
                                                <Image HorizontalAlignment="Left" VerticalAlignment="Top" Width="16" Height="Auto" Source="img/icone_supprimer.gif"/>
                                            </Button>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Button Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
                                                <Image HorizontalAlignment="Left" VerticalAlignment="Top" Width="16" Height="Auto" Source="img/icone_modifier.gif"/>
                                            </Button>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                            </GridView>
                        </ListView.View>
                    </ListView>
    Et un pseudo formulaire avec des textbox/labels :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                       <Grid Width="Auto" Height="Auto">
                            <StackPanel d:LayoutOverrides="Width, Height" Width="Auto" Height="Auto">
                                <StackPanel Margin="0,0,0,5" Width="Auto" Height="Auto" Orientation="Horizontal">
                                    <Label Margin="0,0,5,0" Width="150" Height="Auto" Content="Code ISO :"/>
                                    <TextBox Text="{Binding XPath=@Code}" Width="150" Height="Auto" TextWrapping="Wrap"/>
                                </StackPanel>
                                <StackPanel Width="Auto" Height="Auto" Orientation="Horizontal" Margin="0,0,0,5">
                                    <Label Margin="0,0,5,0" Width="150" Height="Auto" Content="Libellé ISO :"/>
                                    <TextBox Text="{Binding XPath=@Libelle}" Width="250" Height="Auto" TextWrapping="Wrap"/>
                                </StackPanel>
    .......
    La listview et le "detail" sont dans une grid avec le datacontext :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Grid DataContext="{Binding Source={StaticResource PaysDataSource}, XPath=Pays, Mode=TwoWay}" Margin="30,0,0,0" VerticalAlignment="Stretch" Height="Auto">
    En gros pour l'instant j'afficher les éléments dans ma listview, et quand je clique sur un élément de la liste ça bind avec les textbox en bas.

    Seulement, comment faire pour ajouter un nouvel élément dans ma liste ??
    J'ai essayer d'ajouter un nouveau listviewitem mais il me dit que je doit modifier l'itemsources...
    Bref comment agir sur ma liste depuis le formulaire. C'est super simple en asp alors pourquoi pas en WPF !!!!!!

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Par défaut
    Salut,

    Quand tu donnes la propriété ItemsSource={Binding} dans ton ListView, tu demandes au contrôle de générer pour toi les ListViewItem (via le binding). Si tu veux rajouter des données dans le ListView, il faut les rajouter à la source de donnée.

    Dans ton cas, il s'agit de XmlDataProvider. Après, je ne suis pas certain que tu puisses comme ça ajouter des données dans le XmlDataProvider. Il faudrait peut être plutôt que tu fasses le binding sur une classe à toi (plus précisément sur un ObservableCollection) qui soit remplis par le contenu du XML...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 74
    Par défaut
    Bonjour,
    déjà merci pour ta réponse.
    En fait je cherche à faire au plus simple sans avoir a coder trop car c'est pour une maquette. Donc si je pouvais faire le maximum en xaml ça serait top. Je ne voudrais pas me retrouver à faire des classes avant l'heure...

Discussions similaires

  1. WPF style par defaut ListView avec GridView dans generic.xaml
    Par Nikita0511 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 17/09/2013, 17h46
  2. [C#] comment développer/réduire le menu ruban en wpf
    Par karim.com dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 19/09/2011, 11h01
  3. Comment Développer proprement et rapidement
    Par Lotharzco dans le forum Débuter
    Réponses: 3
    Dernier message: 30/01/2009, 14h21
  4. [XAML/ListView] Comment modifier le SelectedItem Background ?
    Par Jérem22 dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 04/09/2008, 13h40
  5. Comment Développer en équipe ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 45
    Dernier message: 19/11/2007, 00h15

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