Ajouter une ligne dans listview plusieurs colonnes?
-
25-10-2019 - |
Question
Je rencontre des problèmes en ajoutant une ligne qui affiche toutes les valeurs de l'élément d'un objet.
Voici comment j'ai mis mon listview:
<ListView Height="178" HorizontalAlignment="Left" Margin="238,31,0,0" Name="SpoolSheetListView" VerticalAlignment="Top" Width="555" HorizontalContentAlignment="Stretch" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Width="85" Header="Column 1" />
<GridViewColumn Width="120" Header="Column 2" />
<GridViewColumn Width="120" Header="Column 3" />
<GridViewColumn Width="120" Header="Column 4" />
<GridViewColumn Width="115" Header="Column 5" />
</GridView>
</ListView.View>
</ListView>
par exemple, myObject dispose de 5 membres: member1 à member5, qui sont toutes de type chaîne. Comment puis-je ajouter une seule ligne dans le ListView pour cet objet?
Merci encore les gens!
La solution
contrôles de liste WPF mieux lorsque vous les utilisez travailler avec liaison de données; vous devez lier le ItemsSource
du ListView
à une liste d'objets, et se lient chaque colonne à une propriété de ces objets.
<ListView ItemsSource="{Binding Items}" Height="178" HorizontalAlignment="Left" Margin="238,31,0,0" Name="SpoolSheetListView" VerticalAlignment="Top" Width="555" HorizontalContentAlignment="Stretch" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Width="85" Header="Column 1" DisplayMemberBinding="{Binding Member1}" />
<GridViewColumn Width="120" Header="Column 2" DisplayMemberBinding="{Binding Member2}" />
<GridViewColumn Width="120" Header="Column 3" DisplayMemberBinding="{Binding Member3}" />
<GridViewColumn Width="120" Header="Column 4" DisplayMemberBinding="{Binding Member4}" />
<GridViewColumn Width="115" Header="Column 5" DisplayMemberBinding="{Binding Member5}" />
</GridView>
</ListView.View>
</ListView>
(Items
étant une propriété de l'DataContext
qui renvoie une collection d'objets)
Pour ajouter une ligne à la ListView
, il vous suffit d'ajouter un élément à la collection Items
(notez que la collection doit mettre en œuvre INotifyCollectionChanged
afin que le ListView
est informé, le fonctionnement classe ObservableCollection<T>
très bien pour la plupart des cas)