如何在ListView(WPF和C#)的列中显示列表

本文关键字:列表 显示 ListView WPF | 更新日期: 2023-09-27 18:27:55

我有一个绑定到ListView 的类

class Estudante
{
    public string primeironome { get; set; }
    public string segundonome { get; set; }
    public int[] notas { get; set; }
}

主窗口

ObservableCollection<Estudante> arrList = new ObservableCollection<Estudante>();
ListaAlunos.ItemsSource = arrList;

XAML:

DisplayMemberBinding="{Binding primeironome}"
DisplayMemberBinding="{Binding segundonome}"
DisplayMemberBinding="{Binding notas}"

但当我向集合中添加任何数据时,例如:

arrList.Add(
            new Estudante
            {
                primeironome = "Svetlana",
                segundonome = "Omelchenko",
                notas = new int[] { 98, 92, 81, 60 }
            });

ListView上的结果是:

C1        C2         C3
Svetlana  Omelchenko Int32[] Array

我希望它是:

 C1        C2         C3
 Svetlana  Omelchenko 98, 92, 81, 60

有人能帮我吗?

如何在ListView(WPF和C#)的列中显示列表

创建一个新的string属性,例如

class Estudante
{
    public string primeironome { get; set; }
    public string segundonome { get; set; }
    public int[] notas { get; set; }
    public string StringNotas
    {
       get 
         {
            return string.Join(",", notas);
         }
   }
}

并与StringNotas 结合

Xaml

DisplayMemberBinding="{Binding primeironome}"
DisplayMemberBinding="{Binding segundonome}"
DisplayMemberBinding="{Binding StringNotas}"

您仍将以相同的方式创建数据

arrList.Add(
            new Estudante
            {
                primeironome = "Svetlana",
                segundonome = "Omelchenko",
                notas = new int[] { 98, 92, 81, 60 }
            });

您将在MainWindow 中以相同的方式进行绑定

ObservableCollection<Estudante> arrList = new ObservableCollection<Estudante>();
ListaAlunos.ItemsSource = arrList;