c# - 如何获取对象中的行和单元格
问题描述
我有来自的对象,如果可以的话combobox.DataSource
,我需要在对象或数据源中使用DisplayMember
和。ValueMember
我还想遍历这些数据,但我不知道如何,因为无法从中获取单元格。
有没有办法在数据源或对象中使用数据?
解决方案
您不必使用object
,只需将其投回即可。
假设您是为其赋值的人CmbUnitName.DataSource
,您应该知道该对象的类型。在这种情况下,您可以轻松地将其转换回集合/数据表并循环遍历它。
例如,如果它包含一个类对象列表Unit
:
//cast it back
var cmbUnits = (List<Unit>) CmbUnitName.DataSource;
//loop through collection
foreach(var unit in cmbUnits)
{
//access fields/properties
Console.WriteLine(unit.Id+" "+unit.UnitName);
}
转换后的部分(循环遍历元素和属性)将在很大程度上取决于数据源的性质。无论如何,只要知道类型,就应该能够弄清楚如何遍历它。
如果您不知道原始对象的类型,并且由于某种原因无法从代码中找到它,那么您可以通过调用CmbUnitName.DataSource.GetType
.
请注意,ComboBox.DataSource
它不包含任意对象。属性值必须是:
实现 IList 接口或数组的对象。
因此,大多数时候您应该能够将其转换回IList
. 如果您想创建某种适用于任何数据绑定组合框的通用实现,您可以试试这个。但我有一种强烈的感觉,在你的情况下,你只需要转换DataSource
为原始类型。
推荐阅读
- python - 将文件从 GCP 磁盘而不是存储桶加载到 googlle collab
- flutter - 在 Flutter 的 GridView 中显示图像?
- postgresql - 加速 PostgreSQL 上的 SUM Billion 记录
- jquery - Ajax jQuery 在 HostGator 网络托管站点中不起作用
- c# - C# 方法返回 int-by 值或引用
- swiftui - 如何在由 AnyView 制作的自定义 NavigationItems 之间向 Transitons 添加动画?
- java - iText 7 Html2Pdf 多次使用相同的字体
- php - 无法在php中解析大文件
- sql - 在 Katalon 中格式化数据库查询字符串
- c++ - 在 C++ 中的 while 循环内调用函数时出错