簡體   English   中英

C#在datagridview中為組合框設置數據源

[英]C# set datasource for combobox in datagridview

我在一個舊程序中有兩個表,單位和頻率。 頻率表有一個到單位表的外鍵,一個datagridview設置它的數據源到單位表。 我想向此包含頻率的datagridview添加一個組合框。

選擇單位

var data = context.Units.Where(u => u.Center.center_name.Trim() == cmbCenters.Text.Trim()).ToList();

// my datagridview
dgResult.AutoGenerateColumns = false;
dgResult.Columns.Clear();

....
....

if (chkRx.Checked)
{
    DataGridViewComboBoxColumn rxColumn = new DataGridViewComboBoxColumn();
    rxColumn.Name = "RX";
    rxColumn.ValueMember = "unitID";
    rxColumn.DispalyMember = "rxfreq";
    rxColumn.Datasource = context.Frequencies.ToList();
    dgResult.Columns.Add(rxColumn);
}
if (chkTx.Checked)
{
    DataGridViewComboBoxColumn txColumn = new DataGridViewComboBoxColumn();
    txColumn.Name = "TX";
    txColumn.ValueMember = "unitID";
    txColumn.DispalyMember = "txfreq";
    txColumn.Datasource = context.Frequencies.ToList();
    dgResult.Columns.Add(txColumn);
}

dgResult.DataSource = data;

更新:

我更改了代碼,但是所有頻率都在組合框中顯示,不僅每行都有此unitID的頻率。

if (chkRx.Checked)`
{
    DataGridViewComboBoxColumn rxColumn = new DataGridViewComboBoxColumn();
    rxColumn.Name = "RX";
    //rxColumn.DataPropertyName = "BRxs";
    var datafrequencies =context.Frequencies.ToList();
    rxColumn.DataSource = datafrequencies;
    rxColumn.ValueMember = "frequencyId";
    rxColumn.DisplayMember = "frequencyName";
    dgResult.Columns.Add(rxColumn);
}
dgResult.DataSource = data;`

您在行中搜索頻率的每個數據

  private void dgResult_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
      {
        DataGridViewComboBoxEditingControl comboControl = e.Control as DataGridViewComboBoxEditingControl;
        if (comboControl != null)
        {
            //Set the DropDown style to get an editable ComboBox
            if (comboControl.DropDownStyle != ComboBoxStyle.DropDown)
            {

                comboControl.DropDownStyle = ComboBoxStyle.DropDown;
                //int r = dgvconn.CurrentRow.Index;

            }
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM