情况:
我正在尝试BindingList<string[]>
将从 LINQ to SQL 查询构造的绑定到DataGridView
.
问题:
我要么无法修改生成后的项目 - 要么 - 我在我的(这取决于我使用的代码的哪个迭代)中DataGridView
得到了一堆不需要的字段DataGridView
我在网上找了没用。
我知道字符串的实际值没有公共属性。我很难确定如何检索它(我相信这是问题的一部分)。
C#
int item = (from p in CurrentConversion.Companies[lbCompanies.SelectedIndex].Modules
where p.ModuleName.Equals(clbModules.SelectedItem)
select p.ModuleId)
.FirstOrDefault();
BindingList<string[]> Data = new BindingList<string[]>((
from p in CurrentConversion.Companies[lbCompanies.SelectedIndex].QuestionAnswers
where p[2].Equals(item)
select new string[] { p[0].ToString(), p[3].ToString() })
.ToList());
dgvQuestions.DataSource = Data;
dgvQuestions.Refresh();
不良行为:
这发生在绑定之后
问题:
- 为什么会这样?
- 我如何解决它?
附加信息:
我不确定可能需要哪些额外信息,但我会提供所需的信息。
另外,如果我切换到其他代码迭代:
int item = (from p in CurrentConversion.Companies[lbCompanies.SelectedIndex].Modules where p.ModuleName.Equals(clbModules.SelectedItem) select p.ModuleId).FirstOrDefault();
var Data = new BindingList<object>((from p in CurrentConversion.Companies[lbCompanies.SelectedIndex].QuestionAnswers where p[2].Equals(item) select new {Question = p[0].ToString(), Answer = p[3].ToString() }).Cast<object>().ToList());
dgvQuestions.DataSource = Data;
dgvQuestions.Refresh();
dgvQuestions.Columns[1].ReadOnly = false;
我可以正确查看数据,但无法编辑我想要的列。