我试图通过迭代数据网格的所有行来从数据网格中提取值
foreach (DataRow drv in PGIPortfolio.Items)
{
// DataRow row = drv.Row;
string acname = drv["Portfolio"].ToString();
string paramt = drv["Par Amount"].ToString();
MessageBox.Show(acname);
}
但它在 DataRow drv 处给了我一个 InvalidCastException 。
有人可以告诉我应该做哪些改变才能让它发挥作用吗?
数据网格有一个绑定,并且由来自 ms sql 2008 数据库的存储过程填充
Use a 数据网格行 http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridrow.aspx not a DataRow http://msdn.microsoft.com/en-us/library/system.data.datarow.aspx它们是不同的对象
foreach (DataGridRow drv in PGIPortfolio.Items)
然而,目前尚不清楚在这种情况下 Items 是什么。假设 PGIPortfolio 是 DataGridView 那么你的循环应该写成
foreach (DataGridRow drv in PGIPortfolio.Rows)
EDIT我假设您在 WinForms 中使用 DataGridView 控件,而不是 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)
{
.....
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)