以前已经遇到过一个现象,就是多个下拉列表共用一个DataTable的连带问题。
首先所有下拉列表用的都是同一个DataTable
dt = new DataTable(); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Rows.Add(0, "上行"); dt.Rows.Add(1, "下行"); cbDir.DataSource = dt; cbDir.ValueMember = dt.Columns[0].ColumnName; cbDir.DisplayMember = dt.Columns[1].ColumnName; AddComboBoxColumn(dt, "RouteName", "线路"); AddComboBoxColumn(dt, "DevName", "设备"); AddComboBoxColumn(dt, "ComPort", "串口通信端口");
然后运行后可以看到
可以发现表外下拉列表改变值不连带其他下拉列表的值,而表内下拉列表的值改变只连带改变表外下拉列表的值,求解释。。。
你需要一个BindingSource来挂接DataTable,然后将BingingSource绑定给DataTable.DataSource,这样就可以连带了
你用的dataviewgrid吧,应该是没有提交的缘故。你外面改动,grid不变,应该是没有提交。grid变动,它应该是自动提交,所以外面也跟着变。不太确定。