如何将对象集合绑定到 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 的相关文章

  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

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

    这个问题在这里已经有答案了 我想检查两个数组是否相同 不是内容方面的 而是按照确切的顺序 例如 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