将DataGrid保存到Bin

问题描述

首先,.Rows对我不起作用。相信我,我已经尝试过了,而且我对这个新手还是个新手,很难理解为什么它不起作用。在单击按钮之前,以下代码不会引发任何错误。然后崩溃,我得到: system.invalidCastException:'无法将'History'类型的对象转换为'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(historyData.ItemsSource中的History历史记录){bw.Write(history.Timestamp); ...} –克莱门斯