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 :
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 :
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 :
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 :
<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 !!!!!!
Partager