C#如何将DataGridView控件中的数据保存为DataTable表(开发工具-visualstudio)

问题遇到的现象和发生背景

我用的是C#语言,做了一张DataTable类型的表,然后用DataGridView控件将其显示了出来。现在我运行时通过对DataGridView直接操作对数据进行了修改和添加,但是却不知道怎么把修改后的数据重新存储回这张表里了

问题相关代码
        private void 保存修改ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (tableMode == 1)
            {
                //tableMode是一个旗标,用于标识表单类型
                //这里应该是把dataGridView1中的数据倒回去的,但我不知道怎么倒,只能先用源数据装样子防报错
                tableJsonShowTemp = dataGridView1.DataSource as DataTable;
                jsonSettingsList = MakeJsonTableReverse();
                if (listOfItemList.Count < jsonSettingsList.Count)
                {
                    for (int i = 0; i < jsonSettingsList.Count - listOfItemList.Count; i++)
                    {
                        List newItemList = new List();
                        listOfItemList.Add(newItemList);
                    }
                }
                for (int i = 0; i < jsonSettingsList.Count; i++)
                {
                    jsonSettingsList[i].items = listOfItemList[i];
                }
                MessageBox.Show("修改已保存");
            }
            else if (tableMode == 2)
            {
                tableJsonItemShowTemp = dataGridView1.DataSource as DataTable;
                listOfItemList[rowNum] = MakeItemTableReverse();
                jsonSettingsList[rowNum].items = listOfItemList[rowNum];
                MessageBox.Show("修改已保存");
            }
            else
            {
                MessageBox.Show("操作异常!");
            }
        }
运行结果及报错内容

tableJsonShowTemp和tableJsonItemShowTemp两张表存哪张哪张没数据

我的解答思路和尝试过的方法

要有就不问了

我想要达到的结果

把dataGridView1这个控件里的表保存回去

DataTable作为全局变量

你建立一个全局变量DataTable dt
然后执行dataGridView1.DataSource=dt
那么你在窗体中改了dataGridView1的内容,dt的内容也就自动改变了