Учитывая описание, лучшее, что я могу предложить, - это вручную отследить ключ / индекс изображения в .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);
}
}
что нибудь поможет?