【发布时间】:2014-01-02 13:41:38
【问题描述】:
我正在创建一个应用程序,它使用 DataGridView 创建和修改稍后将导入系统的本地列表。它应该可由用户编辑(在 DGV 中单击和写入),并且它还应该支持从 csv 导入,这意味着我需要在 DGV 和数据源之间进行 2 路同步。
我已将 DGV 的 DataSource 设置为 BindingList<Client>,如下所示:
//In my seperate Client class-file
public class Client
{
private string _name;
private string _mac;
private string _status;
public Client(string pcnavn, string MAC)
{
_pcnavn = pcnavn;
_mac = mac;
}
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
public string MAC
{
get
{
return _mac;
}
set
{
_mac = value;
}
}
public string Status
{
get
{
return _status;
}
set
{
_status = value;
}
}
}
//In my mainform class
public BindingList<Client> clientDataSource = new BindingList<Client>();
public MainForm()
{
InitializeComponent();
//clienDataGridView.AutoGenerateColumns = false; //The duplicate columns where fixed by setting DataPropertyName for all columns.
clientDataGridView.DataSource = clientDataSource;
}
使用这种方法,生成了 DGV,但它是空的(只有标题),因此用户无法使用 DGV 添加行。如果没有 DataSource,它会像 SQL 编辑器一样显示一个空白行,因此我可以在 DGV 中手动创建行。链接到空数据源时,如何显示“新项目”行?我发现的所有示例都使用非空数据源。
AllowUserToAddRows 和 AllowUserToDeleteRows 设置为 true。
这张照片显示了我的问题。使用数据源时缺少“第一行”。无法通过键入 DGV 添加数据。
【问题讨论】:
标签: c# winforms datagridview