0

C# WPF中,我有一个DataGrid -object。为了用值填充DataGrid -object,我正在设置DataGrid.ItemsSource -property,如下所示:

List<SomeClass> someClassList = new List<SomeClass>();
//adding elements to someClassList (omitted for brevity)
myDataGrid.ItemsSource = someClassList;

这可行,我可以看到添加到someClassListDataGrid 中的所有元素。

用户单击按钮后,我想将该DataGrid中的所有内容保存到XML-file

因此,我认为迭代DataGrid的行会很聪明。通过每次迭代,我可以一次访问一行单元格内的值并将其写入XML 文件

为了执行这样的迭代,我编写了以下代码:

foreach (SomeClass someClassElement in myDataGrid.Items)
{
    Trace.WriteLine("cell-A = " + someClassElement.propertyA +
                    "cell-B = " + someClassElement.propertyB +
                    "cell-C = " + someClassElement.propertyC);
}

不幸的是,执行它(通过单击按钮)会导致InvalidCastException,尽管WritLine方法能够将每个单元格值打印到Output-window

如何在没有 InvalidCastException 的情况下执行迭代?

是否有更聪明的方法将 DataGrid 内容保存到 XML-File ?

4

1 回答 1

3

迭代myDataGrid.ItemsSource而不是,myDataGrid.Items您将获得SomeClass实例。

于 2013-10-20T05:22:35.533 回答