【问题标题】:WPF Binding DataGrid to Array indexWPF 将 DataGrid 绑定到数组索引
【发布时间】:2018-08-17 12:07:38
【问题描述】:

假设我有一些学生课:

class Student {
   string Name { get; private set; }
   int[] Assignments { get; set; }
   char Grade { get { return Assignments.Sum() > 300 ? 'P' : 'F'; } }
}

每个学生有一些已知的、固定的但不切实际的大量作业。

我想使用 DataGrid 在“成绩簿”应用程序中表示学生的成绩,其中有一列是学生姓名、当前通过/未通过状态,然后是每个作业的分数,而不是为每个作业创建一个列手动分配。

这可能吗?

【问题讨论】:

  • 是的,使用 ICustomTypeDescriptor 和 ITypedList 接口。 DataGrid 想要显示一个矩形的数据网格,因此当您有一个自然没有要显示为列的属性列表的类时,您可以使用此接口来“展平”行。请参阅我对这个问题的回答:stackoverflow.com/questions/44958139/…
  • 是的,有可能。做一些研究

标签: c# wpf data-binding


【解决方案1】:

你能添加一个 Property AssignmentsStr 和 Binding 吗?

 class Student {
       string Name { get; private set; }
       int[] Assignments { get; set; }
       char Grade { get { return Assignments.Sum() > 300 ? 'P' : 'F'; } }
       public string AssignmentsStr
       {get{return string.join(",",Assignments);}}
    }

【讨论】:

  • 这在技术上可行,但不允许用户按给定作业的成绩排序,或者在没有大量开发工作的情况下对其进行编辑(必须拆分、重新解析、抛出错误-数字结果等)
  • 是否要通过代码将DataGridTextColumn绑定添加到Assignments[0](Assignments[1],Assignments[2]等)
猜你喜欢
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-28
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 2023-04-06
相关资源
最近更新 更多