C# WPFにはDataGridオブジェクトがあります。DataGridオブジェクトに値を入力するには、次のように DataGrid.ItemsSource プロパティを設定しています。
List<SomeClass> someClassList = new List<SomeClass>();
//adding elements to someClassList (omitted for brevity)
myDataGrid.ItemsSource = someClassList;
これは機能し、 DataGridsomeClassList
内に追加されたすべての要素を確認できます。
ユーザーがボタンをクリックした後、そのDataGrid内のすべてのコンテンツをXML ファイルに保存したいと考えています。
したがって、DataGridの行を反復処理するのが賢明だと思いました。反復ごとに、一度に1行のセル内の値にアクセスして、 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 に保存するより賢い方法はありますか?