将包含文本值“true”文本的datagridview单元格类型更改为复选框

时间:2014-10-13 11:32:56

标签: c# xml winforms datagridview

我有一个datagridview,其中的单元格的文本值为" True"对于一列,下一列应该有一个组合框,有两个值可供选择(输入和输出)...我想将单元格类型更改为复选框,单元格类型更改为组合框...如果单元格文本是"真"必须选中复选框,如果它是假的或者没有任何内容,则必须取消选中,如果方向列中的文本在组合框值中必须设置为IN并且在其中有一个额外的选项out ... DATA来自加载的xml文件,这是我将xml文件加载到datagridview

的方式
 public void Load(DataGridView dgv)
            {             
                    dgv.Refresh();
                    XmlReaderxmlFile=XmlReader.Create(@"path/DGVXML.xml",newXmlReaderSettings());
                    DataSet dataSet = new DataSet();
                    dataSet.ReadXml(xmlFile);
                    dgv.DataSource = dataSet.Tables[0];
                    xmlFile.Close();              
            }

enter image description here

datagridview必须显示如下

enter image description here

1 个答案:

答案 0 :(得分:0)

这是iv添加到加载方法并且100%工作

  dgv.Refresh();
                XmlReader xmlFile = XmlReader.Create(@"/DGVXML.xml", new XmlReaderSettings());
                DataSet dataSet = new DataSet();
                dataSet.ReadXml(xmlFile);

                DataGridView grid = new DataGridView();
                var nameColumn = new DataGridViewTextBoxColumn();
                nameColumn.Name = "Device Name";
                nameColumn.HeaderText = "Device Name";
                dgv.Columns.Add(nameColumn);


                var checkColumn = new DataGridViewCheckBoxColumn();
                checkColumn.Name = "Select";
                checkColumn.HeaderText = "Select";
                dgv.Columns.Add(checkColumn);

                string IN = "IN";
                string OUT = "OUT";
                var select = new DataGridViewComboBoxColumn();
                select.HeaderText = "Direction";
                select.Name = "Direction";
                select.Items.Add(IN);
                select.Items.Add(OUT);
                dgv.Columns.Add(select);

                foreach (DataRow row in dataSet.Tables[0].Rows)
                {
                    string DeviceName = row[0].ToString();

                     bool Enabled = false;
                    if (row[1].ToString() != "")
                        Enabled = Convert.ToBoolean( row[1].ToString());

                    string Direction = row[2].ToString();

                    DataGridViewRow dgRow = new DataGridViewRow();
                    dgv.Rows.Add(new object[] {DeviceName, Enabled, Direction});
                }