我在datagridview中遇到了一个comboboxcolumn问题:因为我想插入一个新行,我得到一个“System.ArgumentException:DataGridViewComboBoxCell的值无效。”我使用Linq to SQL来填充来自不同表的数据:
我的Linq查询填充ContactDataGridView(绑定到TextBox RelationIdTextBox),如下:
var y = from r in BH.Relations
where r.RelationID.ToString() == relationIDTextBox.Text
join v in BH.Addresss on r.RelationID equals v.RelationID
join c in BH.ContactPersons on v.AddressID equals c.AddressID
select c;
contactPersonsBindingSource.DataSource = y;
ContactDataGridView.DataSource = contactPersonsBindingSource;
这很好用。
在这个ContactDataGridView中,我有一个ComboBoxCell AddressID,使用以下linq查询填充街道名而不是AddressID:
var addr = from a in BH.Addresss
where a.RelationID.ToString() == relationIDTextBox.Text
select new { AddressID = a.AddressID, Street = a.Street };
ContactAddressBindingSource = addr;
这也很好。
也就是说,直到我想在此datagridview中添加一个新行。然后我收到错误
“System.ArgumentException:DataGridViewComboBoxCell的值 无效。“
任何人都可以帮助让我明白我做错了什么吗?我真的无法理解!
答案 0 :(得分:0)
我遇到了完全相同的问题,我通过在网格中添加新行时设置默认值来解决该问题,该默认值必须是组合框中现有的ID之一。
<script src="https://polyfill.io/v2/polyfill.min.js?features=IntersectionObserver"></script>
<div class="carousel">
<div id="x">x</div>
<div id="y">y</div>
<div id="z">z</div>
</div>
<div id="indicator">• ◦ ◦</div>
用地址表中存在的任何ID替换“ 1”,通常是与组合框的第一项相对应的ID。