我有从textfiles导入的数据,传输到sqlite db,然后将其传输到LISTS。现在我想在LISTVIEW中向用户显示这些列表。每列应包含一个列表。
下面,第二列的内容非常精细。但是,第3列和第4列应垂直填充与其颜色值对应的项目。
从下面的代码中,我想用MaxLen列表和PercentPopList列表填充第3和第4列。 (是的,我知道我跳过一个专栏,但我稍后会解决这个问题)
我是编程新手,我无法弄清楚如何做到这一点。
ListViewItem lvi = new ListViewItem();
foreach (object o in SeqIrregularities)
{
lvi.SubItems.Add(o.ToString());
listView1.Items.Add(lvi);//Adds a new row
lvi = new ListViewItem();
}
listView1.Items.Add(lvi);//Adds a new row
lvi = new ListViewItem();
foreach (object a in MaxLen)
{
lvi.SubItems.Add(a.ToString());
}
listView1.Items.Add(lvi);//Adds a new row
lvi = new ListViewItem();
foreach (object b in PercentPopList)
{
lvi.SubItems.Add(b.ToString());
}
listView1.Items.Add(lvi);//Adds a new row
答案 0 :(得分:3)
您的数据格式错误。简化,您似乎有这样的数据:
var firstColumnValues = new List<int>();
var secondColumnValues = new List<int>();
var thirdColumnValues = new List<int>();
虽然每个列表本身都有意义,但它们目前并没有以任何有意义的方式相互关联。你需要做的是考虑代表一个“数据记录”的对象的格式。仍然过于简化,像这样:
class RecordOfValues
{
public int FirstValue { get; set; }
public int SecondValue { get; set; }
public int ThirdValue { get; set; }
}
然后你只有一个列表:
var listOfRecords = new List<RecordOfValues>();
此时,您将有一个“记录”列表绑定到ListView
。
答案 1 :(得分:1)
据我所知,您没有太多经验,也无法轻易提出算法来解释建议的修改;这里有一个示例代码,展示了如何扩展代码以填充3个不同列表中的三个不同列:
List<string> SeqIrregularities = new List<string>();
SeqIrregularities.Add("1");
SeqIrregularities.Add("2");
SeqIrregularities.Add("3");
List<string> MaxLen = new List<string>();
MaxLen.Add("4");
MaxLen.Add("5");
MaxLen.Add("6");
List<string> PercentPopLis = new List<string>();
PercentPopLis.Add("7");
PercentPopLis.Add("8");
PercentPopLis.Add("9");
PercentPopLis.Add("10");
PercentPopLis.Add("11");
int totItems = SeqIrregularities.Count - 1;
if (MaxLen.Count - 1 > totItems) totItems = MaxLen.Count - 1;
if (PercentPopLis.Count - 1 > totItems) totItems = PercentPopLis.Count - 1;
for (int i = 0; i <= totItems; i++)
{
ListViewItem lvi = new ListViewItem();
string item1 = "";
string item2 = "";
string item3 = "";
if (SeqIrregularities.Count - 1 >= i) item1 = SeqIrregularities[i];
if (MaxLen.Count - 1 >= i) item2 = MaxLen[i];
if (PercentPopLis.Count - 1 >= i) item3 = PercentPopLis[i];
lvi.SubItems.Add(item1);
lvi.SubItems.Add(item2);
lvi.SubItems.Add(item3);
listView1.Items.Add(lvi);
}