1

在我的 xml 文件中,它有很多元素,并且有很多子/子子元素,所以我决定加载为通用列表并显示在 DGView 中,并且列已经在 DGview 中创建/自定义。

我必须编辑 datagridview 中的值并序列化回文件。我想知道,如何从数据网格视图中获取值并序列化回文件。

我尝试使用它,Dataset ds = new Dataset();ds = (Dataset) (dataGridView2.Datasource);ds.WriteXml("XML_File.xml");我收到一条错误消息,nullRefExceptionError。据我所知,DataSet ds 为空,这就是我收到此错误的原因。

我不想使用数据集进行绑定。我想将xml文件直接绑定到datagridview。我的方法有可能吗???

这种方法很好,但它不像原始 xml 文件那样保存 xml 文件:

 DataTable dt = new DataTable("Rules");

        for (int i = 0; i < dataGridView4.ColumnCount; i++)
        {
            dt.Columns.Add(dataGridView4.Columns[i].Name, typeof(System.String));
        }

        DataRow myrow;
        int icols = dataGridView4.Columns.Count;
        foreach (DataGridViewRow drow in this.dataGridView4.Rows)
        {
            myrow = dt.NewRow();
            for (int i = 0; i <= icols - 1; i++)
            {

                myrow[i] = drow.Cells[i].Value;
            }
            dt.Rows.Add(myrow);
        } 

        dt.WriteXml(@"C:\test\items.xml");

对我从 datagridview 进行序列化/写入值的任何帮助。

4

1 回答 1

1

我已经针对我的问题调整了这种方法并且它有效。

List<Test>laneConfigs = new List<Test>();//From a class
            foreach (DataGridViewRow dr in dataGridView1.Rows)
            {
                int bbbBorder = 0;
                Int32.TryParse(dr.Cells["BBor"].Value.ToString(), out bbbBorder );
                int eeee= 0;
                Int32.TryParse(dr.Cells["EBor"].Value.ToString(), out eee);

                LaneConfig laneConfig = new LaneConfig(
                    dr.Cells["ID"].Value.ToString(),
                    (TrafficLaneType)Enum.Parse(typeof(TrafficLaneType), dr.Cells["Type"].Value.ToString()),
                    new ValueWithUnit<int>(bbbBorder, "mm"),
                    new ValueWithUnit<int>(eee, "mm"));

                laneConfigs.Add(llaneConfig);
            }
于 2012-10-27T19:53:53.143 回答