使数据网格视图从对象内部读取

本文关键字:对象 内部 读取 视图 数据 数据网 网格 | 更新日期: 2023-09-27 18:21:14

  class A{
  int a;
  B b;
  }
  class B{
  int c,d;
  {
  .
  .
  .
  List<A>list = new List<A>();
  Populating list with object....
  BindingSource bindingSource = new BindingSource();
  dataGridView1.DataSource = bindingSource;
  dataGridView1.Update();
  bindingSource.DataSource = list;

是否可以强制 dataGridView1 显示 3 列,这些列将包含 int a,c,d 中的值而不创建新类并将数据从类 A 复制到新类?

使数据网格视图从对象内部读取

dataGridView 列只允许绑定到第一级属性。

如果它不是大程序,或者如果你在建模阶段写作更容易是制作新类,其中所有项目都在第一级。

但是,如果您确实需要该模型,请阅读以下内容:

类型描述提供程序

这应该可以帮助您制作您想要的东西,但对于较小的程序(或者如果真的没有必要(,更快、更容易是第一种方法;)

是否可以强制 dataGridView1 显示 3 列,这些列将包含来自 int a、c、d 的值,而无需创建新类并将数据从类 A 复制到新类?

您可以使用数据表。 设置列,然后循环访问列表,并将每个 A 的每个元素添加为数据表中的新行。 然后使用数据表作为 DGV 的数据源。

在我看来,使用列表视图可以完成同样的事情。

另一种选择是将 b 设为私有,并且在 A 中具有公共属性,这些属性与 b 中的属性相呼应。 这样,您想要的所有属性都是第一级