我有一个DataTable。
CurrencyId |货币
0 | USD
1 |铢
2 |欧元
5 |卢比
6 |日元
我已将此表绑定到DataGridViewCombobox单元格。用户可以选择一种货币一次。如果用户在第一行DataGridViewRow中选择“USD”,则下一行的组合框将没有“USD”。我能得到它吗?我试过这个。
private void setCellComboBoxItems(DataGridView dataGrid, int rowIndex, int colIndex, DataTable itemsToAdd)
{
DataGridViewComboBoxCell currencycell = (DataGridViewComboBoxCell)dataGrid.Rows[rowIndex].Cells[colIndex];
currencycell.DataSource = dtCurrency;
currencycell.ValueMember = "CurrencyId";
currencycell.DisplayMember = "CurrencyShortName";
}
我无法修改DataSource属性。我怎么才能得到它?感谢。
答案 0 :(得分:0)
拥有数据源的副本,您可以在其中删除用作显示数据源的选定值。
订阅DataGridView.EditingControlShowing
事件,然后从编辑控件中获取组合框,如下所示,并将其数据源设置为数据源的副本。
示例代码:
void myDGV_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
ComboBox comboBox = e.Control as ComboBox;
if (comboBox != null)
{
comboBox.DataSource = displayDataSource;
}
}