Blo*_*ard 11 .net c# datagridview
我正在建立一个DataGridViewComboBoxColumn这样的:
var newColumn = new DataGridViewComboBoxColumn() {
Name = "abc"
};
newColumn.DataSource = new string[] { "a", "b", "c" };
dgv.Columns.Add(newColumn);
Run Code Online (Sandbox Code Playgroud)
这样做:每行在该列中都有一个下拉框,填充了a,b,c.
但是,现在我想修剪某些行的列表.我试图像这样设置每行的列表:
foreach (DataGridViewRow row in dgv.Rows) {
var cell = (DataGridViewComboBoxCell)(row.Cells["abc"]);
cell.DataSource = new string[] { "a", "c" };
}
Run Code Online (Sandbox Code Playgroud)
但是,此代码无效 - 每行仍显示"a","b","c".
我曾尝试更换new string[]同new List<string>和new BindingList<string>,都无济于事.
我也尝试删除设置的代码newColumn.DataSource,但是列表是空的.
我该如何正确地做这件事?
SwD*_*n81 21
以下适用于我:
DataGridViewComboBoxColumn newColumn = new DataGridViewComboBoxColumn();
newColumn.Name = "abc";
newColumn.DataSource = new string[] { "a", "b", "c" };
dataGridView1.Columns.Add(newColumn);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell)(row.Cells["abc"]);
cell.DataSource = new string[] { "a", "c" };
}
Run Code Online (Sandbox Code Playgroud)
你也可以试试(这对我也有用):
for (int row = 0; row < dataGridView1.Rows.Count; row++)
{
DataGridViewComboBoxCell cell =
(DataGridViewComboBoxCell)(dataGridView1.Rows[row].Cells["abc"]);
cell.DataSource = new string[] { "f", "g" };
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53571 次 |
| 最近记录: |