private void Form1_Load(object sender, EventArgs e)
{
Data data = new Data { description = "Test1" };
listBox1.Items.Add(data);
data.BlankLine = new BlankItem();
listBox1.Items.Add(data.BlankLine);
data = new Data { description = "Test2" };
listBox1.Items.Add(data);
data.BlankLine = new BlankItem();
listBox1.Items.Add(data.BlankLine);
data = new Data { description = "Test3" };
listBox1.Items.Add(data);
data.BlankLine = new BlankItem();
listBox1.Items.Add(data.BlankLine);
data = new Data { description = "Test4" };
listBox1.Items.Add(data);
data.BlankLine = new BlankItem();
listBox1.Items.Add(data.BlankLine);
}
public class Data
{
public string description { get; set; }
public BlankItem BlankLine { get; set; }
public override string ToString()
{
return description;
}
}
对象空白项
public class BlankItem
{
public override string ToString()
{
return Environment.NewLine;
}
}
2条答案
按热度按时间bvjveswy1#
我已经输入了项目,并区分什么是空白项目和什么是值项目。在删除的时候,我有这两个的参考。它工作正常,看看它是否有帮助。
下面是一个例子:
表格:
单击时删除项目的事件:
对象数据
对象空白项
gijlo24d2#
我想尝试实现上述功能,但使用了数据绑定的
Listbox
,这样我就可以对底层列表进行更改,而不是对Listbox
进行更改。如果可能,请使用BindingList<T>
而不是List<T>
,因为它实现了特定于数据绑定的附加功能。核心仍然是一样的,因为每增加一个项目之后都必须增加一个
string.Empty
项目。按[DEL]键删除项目,按[INS]键添加项目。
但是我对这个解决方案并不满意,我认为有一种方法可以创建一个实现
IListSource
的类,你直接添加/删除项,它会自动创建一个中间有空格的列表用于绑定。