【发布时间】:2013-09-10 04:48:01
【问题描述】:
我有一个包含两列的 ListView,Boxes 和 Files。我将项目添加到字符串列表中,然后使用该字符串列表填充 ListView。我想让所有 8 个字符长的项目进入 Boxes 列,所有 9 个字符的项目进入 Files 列。到目前为止,我已经尝试使用 for 循环进行迭代并使用 if else 语句来添加项目,但我似乎做错了什么。这是我当前的代码:
public void PopulateItemsList()
{
BoxAndFileList.Items.Clear();
ScanIdBox.Text = string.Empty;
for (int i = 0; i < BoxNumberRepository._boxAndFileList.Count; i++)
{
var item = BoxNumberRepository._boxAndFileList.Item[i];
if (item.Length == 8)
{
BoxAndFileList.Items.Insert(0, item);
}
else
{
BoxAndFileList.Items.Insert(1, item);
}
}
}
我正在遍历我的列表 (_boxAndFileList) 并尝试利用 Insert() 将项目插入到列的特定索引中(Boxes 为 0,Files 为 1)。我可以清楚地看到 Item 是字符串列表的合法属性,但 VS 一直说该列表不包含它的定义。我该怎么做呢?而且,我还没有收到外界对这种做事方式的反馈,所以如果有更好的方法,请告诉我。
编辑:BoxNumberRepository 是一个更新名为 _boxAndFileList 的列表的类。代码如下:
public class BoxNumberRepository : Scan_Form
{
public static List<string> _boxAndFileList = new List<string>();
public void AddItem(string item)
{
_boxAndFileList.Add(item);
}
public void Delete(string item)
{
_boxAndFileList.Remove(item);
}
public IEnumerable<string> GetAllItems()
{
return _boxAndFileList;
}
}
感谢 Alessandro D'Andria 的建议。那是正确的。但是,所有项目仍然只是添加到第一列,即使它们是 9 个字符。如何将 9 个字符项添加到第二列?
【问题讨论】:
-
您使用的是 WinForms 还是 WPF?
-
你说你想把 2 种项目放在单独的列中,但是行呢?在每个循环中,您只能在列中插入一项,但列表视图中的一行有 2 列?实际上,您的代码将每个项目插入到单独的行(而不是列)上。
-
如果
_boxAndFileList是List<T>则没有属性 Items 只是 [i]。 -
请定义
BoxNumberRepository和_boxAndFileList