gpt4 book ai didi

c# - 数据绑定(bind) DataGridView 显示新行符号

转载 作者:行者123 更新时间:2023-11-30 22:29:03 25 4
gpt4 key购买 nike

我有一个 C# (.Net 3.5) 应用程序,我试图在我的数据绑定(bind)数据 GridView 中强制/显示 NewRow 符号(* - 星号/星号)。我的数据 GridView 绑定(bind)到通用列表。

myRecordRow 类:

class myRecordRow {
private string _recordName;
private string _recordLocation;
public string RecordName {
get { return _recordName; }
set { _recordName = value; }
}
public string RecordLocation {
get { return _recordLocation; }
set { _recordLocation = value; }
}
public myRecordRow() {
_recordName = string.Empty;
_recordLocation = string.Emtpy;
}
public myRecordRow(string name, string location) {
_recordName = name;
_recordLocation = location;
}
}

myRecord 类:

class myRecord {
private List<myRecordRow> _recordRows;
public List<myRecordRow> RecordRows {
get { return _recordRows; }
set { _recordRows = value; }
}
}

现在在我的 Winform form1_Load() 事件中,我有以下内容:

private form1_Load() {
BindingSource bindingSource1 = new BindingSource();

myRecord rec = new myRecord();
myRecordRow newRow = new myRecordRow("name1", "location1");
myRecordRow newRow2 = new myRecordRow("name2", "location2");
rec.RecordRows.Add(newRow); rec.RecordRows.Add(newRow2);

dataGridView1.AutoGenerateColumns = false;
dataGridView1.AllowDrop = true;
dataGridView1.AllowUserToAddRows = true;
int colIndex = dataGridView1.Columns.Add("RecordName", "myRecord Name");
dataGridView1.Columns[colIndex].DataPropertyName = "RecordName";
colIndex = dataGridView1.Columns.Add("RecordLocation", "myRecord Location");
dataGridView1.Columns[colIndex].DataPropertyName = "RecordLocation";

bindingSource1 = new BindingSource();
bindingSource1.DataSource = rec.RecordRows;
dataGridView1.DataSource = bindingSource1;
}

注意:我有拖放事件,可以将数据正确添加到基础数据源(通用列表)。

当我的表单第一次加载时,我的数据 GridView 填充了 2 个条目,但没有显示 NewRow()(带有星号/星号的那个)- 如何让我的数据 GridView 显示 NewRow? ?此外,一旦用户开始添加数据(通过拖放),我也希望显示 NewRow。

显示 NewRow 的主要原因是允许另一种(替代)方法添加数据 - 通过在任一单元格/列中键入必要的数据。我已经通过拖放操作进行了数据绑定(bind),但似乎无法显示 NewRow,因此用户无法开始编辑单元格。我不想使用按钮将新行“插入”到我的基础数据源中。

感谢任何协助/帮助。我浏览了这个论坛并找到了将“隐藏” NewRow 的答案 - 我的情况恰恰相反,尤其是对于数据有界的 datagridview。谢谢。

  • 洛伦兹

最佳答案

好的 - 我的问题是我的 BindingSource。 AllowNew 属性设置为 false - 我将其设置为 true 并得到了我需要的。有时最难的问题会导致简单的答案。

bindingSource1 = new BindingSource();
bindingSource1.AllowNew = true;

关于c# - 数据绑定(bind) DataGridView 显示新行符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com