将 DataGrid 保存到 Bin
Saving DataGrid to Bin
首先,.Rows 对我不起作用。相信我,我已经尝试过了,但我只是一个新手,无法理解为什么它不起作用。在我单击按钮之前,下面的代码不会引发任何错误。然后它崩溃了,我得到:System.InvalidCastException: 'Unable to cast object of type 'History' to type 'System.Windows.Forms.DataGridViewRow'.'
string file = "history.bin";
using (BinaryWriter bw = new BinaryWriter(File.Open(file, FileMode.Create)))
{
bw.Write(historyData.Columns.Count);
bw.Write(historyData.Items.Count);
foreach (System.Windows.Forms.DataGridViewRow row in historyData.Items)
{
for (int j = 0; j < historyData.Columns.Count; ++j)
{
object val = row.Cells[j].Value;
if (val == null)
{
bw.Write(false);
bw.Write(false);
}
else
{
bw.Write(true);
bw.Write(val.ToString());
}
}
}
答案 - 写入 History 对象的 属性 值: foreach (History history in historyData.ItemsSource) { bw.Write(history.Timestamp); ... } – 克莱门斯
首先,.Rows 对我不起作用。相信我,我已经尝试过了,但我只是一个新手,无法理解为什么它不起作用。在我单击按钮之前,下面的代码不会引发任何错误。然后它崩溃了,我得到:System.InvalidCastException: 'Unable to cast object of type 'History' to type 'System.Windows.Forms.DataGridViewRow'.'
string file = "history.bin";
using (BinaryWriter bw = new BinaryWriter(File.Open(file, FileMode.Create)))
{
bw.Write(historyData.Columns.Count);
bw.Write(historyData.Items.Count);
foreach (System.Windows.Forms.DataGridViewRow row in historyData.Items)
{
for (int j = 0; j < historyData.Columns.Count; ++j)
{
object val = row.Cells[j].Value;
if (val == null)
{
bw.Write(false);
bw.Write(false);
}
else
{
bw.Write(true);
bw.Write(val.ToString());
}
}
}
答案 - 写入 History 对象的 属性 值: foreach (History history in historyData.ItemsSource) { bw.Write(history.Timestamp); ... } – 克莱门斯