Adicionar itens a colunas numa lista WPF
eu tenho lutado por um tempo agora para adicionar itens a 2 colunas em um ListView
. Na minha aplicação de formulários do Windows eu tinha uma coisa assim:
// 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);
}
Eu ligaria para esta turma do meu ...
Como posso fazer isto na WPF? De preferência, não gostaria de usar muito XAML.
29
Author: davidwroxy, 2013-04-07
1 answers
Solução com menos XAML e mais C#
Se definir o ListView
em XAML:
<ListView x:Name="listView"/>
Depois podes adicionar colunas e povoá-las em 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" });
}
Ver definição de MyItem
abaixo.
Solução com mais XAML e menos C#
No entanto, é mais fácil definir as colunas em XAML (dentro da definição ListView
):
<ListView x:Name="listView">
<ListView.View>
<GridView>
<GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
</GridView>
</ListView.View>
</ListView>
E depois apenas povoar a lista em C#:
public Window()
{
// Initialize
this.InitializeComponent();
// Populate list
this.listView.Items.Add(new MyItem { Id = 1, Name = "David" });
}
Ver definição de MyItem
abaixo.
MyItem
Definição
MyItem
é definido desta forma:
public class MyItem
{
public int Id { get; set; }
public string Name { get; set; }
}
81
Author: Phil, 2016-02-13 17:08:50