Utilisez un DataGridRow pas un DataRow ce sont des objets différents
foreach (DataGridRow drv in PGIPortfolio.Items)
Cependant, il n'est pas clair ce qu'est Items dans ce contexte. En supposant que PGIPortfolio est le DataGridView, votre boucle doit être écrite comme
foreach (DataGridRow drv in PGIPortfolio.Rows)
MODIFIER J'ai supposé que vous utilisiez le contrôle DataGridView dans WinForms, pas le WPF DataGridDans ce cas, l'approche correcte consiste à utiliser la propriété ItemsSource.
Veuillez essayer ce code....
var itemsSource = PGIPortfolio.ItemsSource as IEnumerable;
if (itemsSource != null)
{
foreach (var item in itemsSource)
{
var row = PGIPortfolio.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
if (row != null)
{
.....
}
}
}