【问题标题】:set DataGridView ComboBoxColumn selectedIndex from DataGridView BindingSource从 DataGridView BindingSource 设置 DataGridView ComboBoxColumn selectedIndex
【发布时间】:2018-04-15 07:22:37
【问题描述】:

DataGridViewComboBoxColumn 有一个数据源,其中包含一个名称列表。 DataGridView 包含一个单独的数据源,其中包含上面列表的索引。

是否可以使用 DataGridView 中的数据源设置 DataGridViewComboBoxColumn selectedIndex? 举个例子:

var bs = new BindingSource() {DataSource = objDatabase.GetDataTable("Traverse Table", )}; dgvTraverseTable.DataSource = bs; 对于“Traverse Tale”布局,

  • 1/否

  • 2/是

  • 3/否

dgvTraverseTable 列:colPathName (comboxboxcol)、colPathUse(checkboxcol)

对于 colPathName,我有一个 BindingSource 作为带有

的字符串列表

("PathNo1", "PathNo2", "PathNo3")

所以理想情况下,应该显示以下内容

  • PathNo1 / 否

  • PathNo2 / 是

  • PathNo3 / 否

【问题讨论】:

    标签: c# .net datagridview datagridviewcombobox


    【解决方案1】:

    这是一个完整的工作示例

    using System.ComponentModel;
    using System.Windows.Forms;
    
    namespace Datagridview_47080892
    {
        public partial class Form1 : Form
        {
            DataGridView dgv = new DataGridView();
            BindingList<BindedItem> dgvlist = new BindingList<BindedItem>();
            BindingList<comboItem> comboList = new BindingList<comboItem>();
    
            public Form1()
            {
                InitializeComponent();
                InitDGV();
                AddData();
            }
    
            private void AddData()
            {
                for (int i = 0; i < 5; i++)
                {
                    dgvlist.Add(new BindedItem
                    {
                        prop1 = $"prop1value{i}",
                        prop2 = $"prop2value{i}",
                        prop3 = $"prop3value{i}",
                        prop4 = $"{i}"
                    });
                }
    
                comboList.Add(new comboItem { showThis = "Make a selection", butTheValueIs = "0" });
                comboList.Add(new comboItem { showThis = "Option 1", butTheValueIs = "1" });
                comboList.Add(new comboItem { showThis = "Option 2", butTheValueIs = "2" });
                comboList.Add(new comboItem { showThis = "Option 3", butTheValueIs = "3" });
                comboList.Add(new comboItem { showThis = "Option 4", butTheValueIs = "4" });
                comboList.Add(new comboItem { showThis = "Option 5", butTheValueIs = "5" });
                comboList.Add(new comboItem { showThis = "Option 6", butTheValueIs = "6" });
                comboList.Add(new comboItem { showThis = "Option 7", butTheValueIs = "7" });
                comboList.Add(new comboItem { showThis = "Option 8", butTheValueIs = "8" });
    
            }
    
            private void InitDGV()
            {
                //dgv.Location = new Point(5, 5);
                dgv.Dock = DockStyle.Top;
                this.Controls.Add(dgv);
                dgv.AutoGenerateColumns = false;
                dgv.Columns.Add(new DataGridViewColumn(new DataGridViewTextBoxCell()));
                dgv.Columns.Add(new DataGridViewColumn(new DataGridViewTextBoxCell()));
                dgv.Columns.Add(new DataGridViewColumn(new DataGridViewTextBoxCell()));
    
                DataGridViewComboBoxColumn cbcol = new DataGridViewComboBoxColumn();
                cbcol.DataSource = comboList;
                cbcol.DisplayMember = "showThis";
                cbcol.ValueMember = "butTheValueIs";
                dgv.Columns.Add(cbcol);
    
                dgv.Columns[0].DataPropertyName = "prop1";
                dgv.Columns[1].DataPropertyName = "prop2";
                dgv.Columns[2].DataPropertyName = "prop3";
                dgv.Columns[3].DataPropertyName = "prop4";
    
                dgv.DataSource = dgvlist;
            }
        }
    
    
        public class BindedItem
        {
            public string prop1 { get; set; }
            public string prop2 { get; set; }
            public string prop3 { get; set; }
            public string prop4 { get; set; }
        }
        public class comboItem
        {
            public string showThis { get; set; }
            public string butTheValueIs { get; set; }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 2015-05-21
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多