如何将 DataGridView 与自定义类一起使用并显示复选框
本文关键字:显示 复选框 一起 DataGridView 自定义 | 更新日期: 2023-09-27 18:33:49
这是我的代码:
class SelectionTableEntry
{
public CheckBox cbIsChecked { get; set; }
public Table Table { get; set; }
public string TableName { get; set; }
public Button btnEditFilter { get; set; }
public SelectionTableEntry(Table table, bool IsChecked)
{
this.Table = table;
this.TableName = table.Name;
this.cbIsChecked = new CheckBox();
this.cbIsChecked.Checked = IsChecked;
this.btnEditFilter = new Button();
this.btnEditFilter.Text = "Open";
}
}
List<SelectionTableEntry> myList = new List<SelectionTableEntry>();
// after filling the list with items
myDataGridView.DataSource = myList;
现在,我想使用类型为 SelectionTableEntry 的列表作为我的 DataGridView 的数据源。问题是,复选框和按钮未显示,因此该字段为空。
如何解决问题?提前谢谢。
问候Chris
该DataGridView
具有复选框和按钮、DataGridViewCheckBoxColumn
和DataGridViewButtonColumn
的现成列类型。
如果将自动生成列设置为 true,则将自动为数据源对象上的每个布尔属性获取一个复选框列。
因此,您的类将如下所示:
class SelectionTableEntry
{
public bool cbIsChecked { get; set; }
public Table Table { get; set; }
public string TableName { get; set; }
public string btnEditFilter { get; set; }
public SelectionTableEntry(Table table, bool IsChecked)
{
this.Table = table;
this.TableName = table.Name;
this.cbIsChecked = IsChecked;
}
}
您无法自动生成按钮列,您需要自己添加它们,如下所示:
// Add a button column.
DataGridViewButtonColumn buttonColumn =
new DataGridViewButtonColumn();
buttonColumn.HeaderText = "";
buttonColumn.Name = "Open";
buttonColumn.Text = "Open";
buttonColumn.UseColumnTextForButtonValue = true;
dataGridView1.Columns.Add(buttonColumn);
您需要做更多的事情来对按钮单击做出反应,但 MSDN 文章中对此进行了说明。
下面是
有关如何:在 Windows 窗体 DataGridView 单元格中承载控件的简单教程。 它有点过时,但我相信在使用 DataGridView 时提供了一个很好的起点。 不过,这似乎有点吓人-您将需要实现自己的DataGridViewColumn
和DataGridViewCell
。