Ajouter des éléments dans les colonnes D'une liste WPF
j'ai lutté pendant un certain temps maintenant pour ajouter des éléments à 2 colonnes dans un ListView
. Dans mon application Windows Forms, j'avais quelque chose comme ceci:
// In my class library:
public void AddItems(ListView listView)
{
var item = new ListViewItem {Text = "Some Text for Column 1"};
item.SubItems.Add("Some Text for Column 2");
listView.Items.Add(item);
}
j'appellerais alors cette classe de mon Form.cs
.
Comment puis-je faire cela dans WPF? De préférence, Je ne voudrais pas utiliser beaucoup de XAML.
29
demandé sur
davidwroxy
2013-04-07 22:01:49
1 réponses
Solution avec moins de XAML et plus de C#
si vous définissez le ListView
in XAML:
<ListView x:Name="listView"/>
alors vous pouvez ajouter des colonnes et les remplir en C#:
public Window()
{
// Initialize
this.InitializeComponent();
// Add columns
var gridView = new GridView();
this.listView.View = gridView;
gridView.Columns.Add(new GridViewColumn {
Header = "Id", DisplayMemberBinding = new Binding("Id") });
gridView.Columns.Add(new GridViewColumn {
Header = "Name", DisplayMemberBinding = new Binding("Name") });
// Populate list
this.listView.Items.Add(new MyItem { Id = 1, Name = "David" });
}
Voir la définition de MyItem
ci-dessous.
Solution avec plus de XAML et moins de C#
cependant, il est plus facile de définir les colonnes dans XAML (à l'intérieur du ListView
définition):
<ListView x:Name="listView">
<ListView.View>
<GridView>
<GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
</GridView>
</ListView.View>
</ListView>
Et puis il suffit de remplir la liste de C#:
public Window()
{
// Initialize
this.InitializeComponent();
// Populate list
this.listView.Items.Add(new MyItem { Id = 1, Name = "David" });
}
Voir la définition de MyItem
ci-dessous.
MyItem
Définition
MyItem
est défini comme ceci:
public class MyItem
{
public int Id { get; set; }
public string Name { get; set; }
}
81
répondu
Phil
2016-02-13 17:08:50