鉴于描述,我可以建议的最好方法是手动跟踪单元格的 .Tag 中的图像键/索引,然后在 .Tag 上运行您的不同计数。或者,如果您在列表/集合中也有数据,请计算来自原始来源的数据。
[更新以下回复] 由于数据是数据绑定的,因此您应该能够迭代 的.Rows
,DataGridView
获取.DataBoundItem
每个的。然后对于每个底层对象,您应该能够使用以下方法获取实际属性值TypeDescriptor
:
string propName = col.DataPropertyName;
// could also be a dictionary/hashset etc
// could be typed if you know the type
List<object> values = new List<object>();
foreach(DataGridViewRow row in dgv.Rows)
{
object obj = row.DataBoundItem;
// could be typed (via cast) if you know the type
object val = TypeDescriptor.GetProperties(obj)[propName].GetValue(obj);
if (!values.Contains(val))
{
values.Add(val);
}
}
那有什么帮助吗?