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

时间:2014-10-26 10:03:39

标签: c# wpf listview binding observablecollection

我有一个绑定到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

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

创建一个新的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;