DataGridView中绑定DataGridViewComboBoxCell的问题

时间:2015-11-13 14:14:43

标签: c# winforms linq datagridview datagridviewcomboboxcell

我需要帮助来修复我的代码:

for (int P = 0; P < DataGridView.Rows.Count - 0; P++)
{
  TNTDATADataContext Context = new TNTDATADataContext();
  var q = (from C in Context.Customers
           where C.Code == Code.Text && C.CompanyId == CompanyId
           join TP in Context.TourProgrammes on C.PackageId equals TP.Id
           select new { TP.DayId, TP.FromCityId, TP.ToCityId, TP.Programme }).First();
           DataGridViewComboBoxCell DaysComboBoxCell = (DataGridViewComboBoxCell)DataGridView.Rows[P].Cells[0];
           DaysComboBoxCell.Value = (object)q.DayId;
           DataGridViewComboBoxCell FromCityComboBoxCell = (DataGridViewComboBoxCell)DataGridView.Rows[P].Cells[1];
           FromCityComboBoxCell.Value = (object)q.FromCityId;
           DataGridViewComboBoxCell ToCityComboBoxCell = (DataGridViewComboBoxCell)DataGridView.Rows[P].Cells[2];
           ToCityComboBoxCell.Value = (object)q.ToCityId;
           DataGridView["Programme", P].Value = (object)q.Programme;
}

此代码运行良好并绑定DataGridViewComboBoxCell中的单个值,我已按代码绑定。

有第一个快照

first snapshot

在那里你可以看到一个旅游项目区域,其中DataGridView中有3个DataGridViewComboBoxCell,这是加载客户详细信息快照之前我现在在客户代码TextBox中输入代码后加载客户旅游详细信息它显示了所有细节,但没有在DataGridView中显示其余的旅游程序列表,它在第二个快照中显示结果

second snapshot

我想要一个像我手动制作的第三个快照的结果,你可以理解在加载客户游览细节后我怎么能想要结果

third snapshot

1 个答案:

答案 0 :(得分:0)

for (int P = 0; P < DataGridView.Rows.Count - 0; P++)

DataGridView.Rows.Count恰好是当前DataGridView的行号,其值为1.

也许您应该从Context

获取行号