Използвайте DataGridRow не е DataRow те са различни обекти
foreach (DataGridRow drv in PGIPortfolio.Items)
Не е ясно обаче какви са елементите в този контекст. Ако приемем, че PGIPortfolio е DataGridView, тогава вашият цикъл трябва да бъде написан като
foreach (DataGridRow drv in PGIPortfolio.Rows)
РЕДАКТИРАНЕ Предположих, че използвате контролата DataGridView в WinForms, а не WPF DataGrid. В този случай тогава правилният подход е да използвате свойството ItemsSource.
Моля, опитайте този код....
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)
{
.....
}
}
}