数据网格 - 遍历行并访问每行的单元格值
本文关键字:单元格 访问 网格 遍历 数据 数据网 | 更新日期: 2023-09-27 18:36:02
在C# WPF中,我有一个DataGrid对象。为了用值填充 DataGrid 对象,我像这样设置 DataGrid.ItemsSource-属性:
List<SomeClass> someClassList = new List<SomeClass>();
//adding elements to someClassList (omitted for brevity)
myDataGrid.ItemsSource = someClassList;
这有效,我能够看到添加到 DataGrid 中someClassList
的所有元素。
用户单击按钮后,我想将该 DataGrid 中的所有内容保存到 XML 文件中。
因此,我认为遍历DataGrid 的行是明智的。每次迭代时,我都可以一次访问一行单元格内的值,并将其写入XML文件。
为了执行这样的迭代,我编写了以下代码:
foreach (SomeClass someClassElement in myDataGrid.Items)
{
Trace.WriteLine("cell-A = " + someClassElement.propertyA +
"cell-B = " + someClassElement.propertyB +
"cell-C = " + someClassElement.propertyC);
}
不幸的是,执行它(通过单击按钮)会导致 InvalidCastException,尽管 WritLine-方法能够将每个单元格值打印到输出窗口中。
如何在没有无效投射异常的情况下执行迭代?
有没有更聪明的方法将数据网格内容保存到XML文件?
遍历myDataGrid.ItemsSource
而不是myDataGrid.Items
,您将获得SomeClass
实例。