如何将对象集合绑定到 Winforms 中的 DataGridView

2023-11-25

如果我有两个对象,即Fruit' andColor`及其定义如下:

public class Fruit  
{  
  public int FruitId { get; set; }  
  public string Name { get; set; }  
  public Color Color { get; set; }  
}  

public class Color  
{  
  public int ColorId { get; set; }  
  public string Name { get; set; }  
}  

如何绑定集合Fruit (e.g. List<Fruit>) 到 DataGridView?其中生成的输出将类似于以下内容:

+-----+--------+----------+  
| Id  | Name   | Color    |  
+-----+--------+----------+  
| 10  | Apple  | Red      |  
| 20  | Orange | Orange   |  
| 30  | Grapes | Violet   |  
+-----+--------+----------+  

并且不像下面的输出:(注意:N 中N.Color表示对象 Color 的命名空间)

+-----+--------+------------+  
| Id  | Name   | Color      |  
+-----+--------+------------+  
| 10  | Apple  | N.Color    |  
| 20  | Orange | N.Color    |  
| 30  | Grapes | N.Color    |  
+-----+--------+------------+  

更新#1:
我发现了一个类似的帖子here并尝试了该帖子中的一些建议,但它不起作用......


你有多种选择。

您可以覆盖ToString方法在你的Color返回类Name like:

public class Color
{
    public int ColorId { get; set; }
    public string Name { get; set; }
    public override string ToString()
    {
        return Name;
    }
}  

或者代替分配List<Fruit> as DataSource您可以选择匿名对象列表并选择Name of Color在你的结果中,如:

var result = yourListOfFruit
                .Select(r => new
                        {
                            FruitID = r.FruitId, 
                            Name = r.Name, 
                            Color = r.Color.Name,
                        }).ToList();

dataGridView1.DataSource = result;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将对象集合绑定到 Winforms 中的 DataGridView 的相关文章

  • 为什么在 lambda 内部引发异常是 C# 7 的一项功能? [复制]

    这个问题在这里已经有答案了 该语句在 VS2015 中无法编译 但在 VS2017 中可以编译 var example new Action gt throw new Exception 为了支持在 lambda 表达式内抛出异常 必须对
  • C - 计算文件中的单词、字符和行数。字符数

    我必须用 C 编写一段代码 输出给定文件中的字符数 行数和单词数 任务看起来很简单 但我现在真的不确定出了什么问题 所以 这是代码 include
  • 为什么使用数组索引循环数组比指针访问慢?

    我正在读Kochan的书 Programming in C 在第 14 页的 指针和数组 部分中 264 他说 一般来说 索引数组的过程比执行索引过程花费更多的时间 访问指针内容的过程 其实这也是主要原因之一 为什么使用指针来访问数组的元素
  • 如何转发声明要在 unique_ptr 的标准容器中使用的类

    在智能指针的标准容器中使用它时 是否可以避免完整的类定义可见 例如 我无法编译以下内容 include
  • C语言实现延时函数

    我想使用空循环实现延迟函数 但是完成一次循环所需的时间取决于编译器和机器 我希望我的程序自行确定时间并将程序延迟指定的时间 谁能给我任何想法如何做到这一点 注意 有一个名为delay 的函数可以将系统暂停指定的毫秒 是否可以在不使用此功能的
  • 表达式访问者仅为某些 lambda 表达式调用 VisitParameter

    我希望能够使用嵌套扩展方法将 EF 中的实体投影到相应的视图模型 参见我之前的问题使用扩展方法在 EF 中投影单个实体 https stackoverflow com questions 39585427 projection of sin
  • 错误:“运行所选代码生成器时出错:包恢复失败”

    我正在尝试将控制器添加到 ASP NET Core 项目中的解决方案中 当我尝试这样做时 我收到此错误 我收到相同的消息 为控制器添加最小依赖项和完整依赖项 我也有这个问题 使用实体框架添加控制器 gt 带有操作的 API 控制器 将给出
  • 为什么 ObservableCollection 有两个集合构造函数?

    The 可观察集合 T https msdn microsoft com en us library ms668604类有两个构造函数 可以在其中传递项目集合 一个构造函数接受一个IEnumerable T 另一个List T 鉴于List
  • 多选DataGridView没有CTRL键没有闪烁?

    我在表单 Form1 vb 上有一个 DataGridView 控件 需要允许用户在不使用 CTRL 键的情况下多选行 没有可用的键盘 他们使用触摸屏 我已启用 mutliselect 属性 并在 Form 类中包含以下代码 我的 Data
  • 将 std::pair const 转换为 std::pair const 安全吗?

    理论上或实践上 安全吗reinterpret cast a std pair
  • 编译器消息“警告:格式‘%s’需要类型‘char *’,但参数 2 具有类型‘char (*)’”

    我正在尝试运行一个简单的 C 程序 但收到此错误 警告 格式 s 需要类型 char 但参数 2 的类型为 char 20 我在跑步Mac OS X v10 8 https en wikipedia org wiki OS X Mounta
  • 使用左连接获得不适当的输出

    我正在尝试获取变体列表 并且对于每个变体都获取所有subvariants list无论子变体属于何处 特别的Test say 100 这是示例数据 Id TestId SourceSubVariantId TargetSubVariantI
  • 如何在 C 语言中获取输入中的空格

    我想从控制台获取字符数组 它还包含空格 我在 C 中知道的唯一方法是 scanf 但是一旦遇到空格 它就会停止接受输入 我该做什么 这就是我正在做的事情 char address 100 scanf s address 尝试使用 fgets
  • 解析连接字符串

    是否有标准库或代码片段可以使用这样的连接字符串获取值 string connstr DataServiceUrl http localhost foo RemoteServerConnection server http localhost
  • “DeploymentItem”属性是什么意思?

    假设我们有一个简短的程序 namespace ConsoleTryIt static class Program static void Main string args var sum Add 1 2 private static int
  • 链接到ntdll.lib并调用ntdll.dll内部的函数

    我最近正在对私有 API 进行一些研究 我尝试调用诸如NtOpenFile在 ntdll dll 中LoadLibrary and GetProcAddress在运行时 幸运的是 它成功了 今天早上我在电脑上进行了文件搜索 发现ntdll
  • 从 AuthorizeAttribute 继承的属性不起作用

    我目前正在尝试根据用户角色在新的 ASP MVC 5 应用程序中实现安全性 目标是防止用户在没有特定角色 或更高角色 的情况下访问某些控制器或控制器方法 根据到目前为止我所读到的问题 我创建了一个继承 AuthorizeAttribute
  • C中使用JNI从对象获取对象

    public class Student private People people private Result result private int amount 这是 Java 中类的示例 在C中 我试图获取 学生 中的 人 但失败了
  • 如何使用 .NET 捕获我的桌面视频?

    我想知道是否有任何方法可以使用 NET 捕获我的桌面的视频 截屏视频 我并不是在寻找截屏软件 而只是在寻找一种可以让我自己生成桌面视频的技术 我想过拍摄多个屏幕截图 但我不确定如何以编程方式生成带有图像序列的视频 有人有主意吗 Thanks
  • 调用泛型类的方法

    这是上下文 我尝试编写一个映射器来动态地将域模型对象转换为 ViewModel 对象 我遇到的问题是 当我尝试通过反射调用泛型类的方法时 出现此错误 System InvalidOperationException 无法对 Contains

随机推荐

  • 如何以最有效的方式检查相同的数组? [复制]

    这个问题在这里已经有答案了 我想检查两个数组是否相同 不是内容方面的 而是按照确切的顺序 例如 array1 1 2 3 4 5 array2 1 2 3 4 5 array3 3 5 1 2 4 数组 1 和 2 相同 但 3 不同 Ja
  • 如何从 Android NDK .so 文件中删除符号?

    如何从 Android 中删除符号 so本机代码库 我有一个 so构建了在十六进制编辑器中清晰可见的数千个符号 IDA Pro 会根据可执行文件中的符号自动反汇编正确的符号 然而 如果我问nm要转储符号表 它说没有 strip and ob
  • 检查CakePHP3.5中是否存在记录

    以下代码仅返回错误 在表 users 中找不到记录 if this gt Users gt get uid gt isEmpty do something 因为表是空的 所以如果表是空的 我想自定义它 并在浏览器中调用一个新页面 Table
  • 用于对进行标准库调用的 C++ 方法进行单元测试的模式

    我正在编写一个 C 类来包装套接字 我知道有很好的库可以实现这一点 我正在使用自己的库进行练习 class Socket public int init void calls socket 2 other stuff we don t ca
  • ComponentScan.basePackageClasses 与 ComponentScan.basePackages 注册单个 Spring webMVC 控制器?

    我想向我的 Spring WebApplicationContext 添加一个特定的控制器类 我遇到了以下示例 它是 Scala 中的 但改编自此处 使用 ComponentScan 或 context component scan 仅使用
  • OpenJDK 11 错误“无法初始化加密机制”

    我有一个使用 openJDK Amazon Corretto 11 和 openJFX 编写的应用程序 当我在本地运行应用程序时 一切正常 但是当我从网络共享执行应用程序时出现异常 java lang ExceptionInInitiali
  • 自动释放对象两次

    NSString str NSString alloc init autorelease autorelease str hii NSLog str 任何人都可以帮我讲述这段代码 自动释放对象两次将会发生什么 当我运行代码时 我没有得到任何
  • Python 将字符串转换为字节

    我正在尝试执行一些串行输入和输出操作 其中之一是将 8x8 数组发送到外部设备 Arduino 这pySerial库要求我发送的信息是一个字节 然而 在我的 python 代码中 8x8 矩阵由类型组成
  • 使用 XSL 从 CDATA 转换 XML

    我有这个 XML 文档
  • 无法使用 PHP 在 MYSQL 数据库中存储阿拉伯语

    过去几个小时我一直在尝试寻找解决方案 但未能成功 我已经尝试了互联网和这个论坛上的所有可能的解决方案 但似乎没有任何效果 问题就在这里 我想存储用户将在 mysql 数据库中表单的文本区域中键入或粘贴的阿拉伯语数据 该网站是阿拉伯语的 表单
  • iOS 7 模拟器 Bug - NSAttributedString 不出现

    更新 我刚刚在运行 iOS 7 的实际 iPhone 5 上遇到了这个问题 很快就会提供更多信息 我想我在 iOS 7 模拟器中发现了一个错误 其中不出现 NSAttributedString 如果其他人可以对此进行测试以确认它是一个错误
  • 不使用 kubectl cp 将文件复制到 kubernetes pod 中

    我有一个用例 我的 pod 以非 root 用户身份运行 并运行一个 python 应用程序 现在我想将文件从主节点复制到正在运行的 pod 但当我尝试跑步时 kubectl cp app py 103000 pras dev simple
  • 强制 iOS 视图不旋转,同时仍允许子视图旋转

    我有一个带有子视图控制器的视图控制器 tab bar controller nav controller UIPageViewController should rotate A Video Player shouldn t rotate
  • 在 Eclipse 上通过 gradle 设置 Kotlin

    努力让 Kotlin 在 Eclipse 上运行 我已经开始了新的 gradle 项目 按照 kotlin 站点上的规定添加依赖项 构建过程没有错误 我在 src java main 下创建了 main kt 文件 fun main arg
  • 独立于操作系统的剪贴板在 C 中复制/粘贴文本

    我正在开发一个项目 该项目应该在 Windows 和 Linux 上运行 也有非官方的 Mac 端口 模拟真彩色系统控制台 我的问题是 最近出现了对文本字段支持的请求 是的 基于控制台 并且添加将文本复制到剪贴板并从中粘贴的可能性会很酷 有
  • NDK 如何在发布时删除 Log Debug 语句

    我知道使用 proguard 您可以从发行版本中删除 java Log d 调试语句https stackoverflow com a 13327603 1527440 但是有没有办法从 NDK C C 代码中删除日志调试语句 我正在使用定
  • 接口和类实现接口的 PhpDoc - 区别 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 问题很简单 我应该如何区分接口和类实现接口的 phpdoc 它们应该 可以相同 或者接口文档应该尽可能通用 而实现该接口的类应该更具体 我在真实代码中包含了一种方法 phpDoc 我的界面
  • 查询 dbo.sysobjects 的权限

    我有以下查询来检查我的 SQL 数据库中是否有任何用户定义的对象 DECLARE testForEmpty BIT if exists select top 1 null from dbo sysobjects where objectpr
  • 我的 jar 是用什么版本的 javac 构建的?

    我如何知道构建 jar 时使用的是哪个版本的 Java 编译器 我有一个 jar 文件 它可以在三个 JDK 中的任何一个中构建 我们需要确切地知道是哪一个 以便我们可以证明兼容性 编译器版本是否嵌入在类文件或 jar 中的某个位置 A j
  • 如何将对象集合绑定到 Winforms 中的 DataGridView

    如果我有两个对象 即Fruit andColor 及其定义如下 public class Fruit public int FruitId get set public string Name get set public Color Co