【发布时间】:2013-10-28 17:10:37
【问题描述】:
在 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 方法能够将每个单元格值打印到 输出窗口。
如何在没有 InvalidCastException 的情况下执行迭代?
有没有更聪明的方法将 DataGrid 内容保存到 XML 文件?
【问题讨论】: