所以我有一段代码可以向listView添加信息,但似乎它有点被“窃听”了。所以,我有2条信息。它完美地添加了一个,但如果它添加第二个它告诉我,它已经存在于那里&向我展示了第一个项目名称,因此基本上它以某种方式尝试添加相同的项目2次。
info.Text = Username;
info.SubItems.Add(Password);
info.SubItems.Add(Points.ToString());
info.SubItems.Add(Level.ToString());
listView1.Items.Add(info);
我还尝试通过查看用户名,密码等的控制台输入来“调试”它。所有这些都是不同的。
// EDIT
我刚刚进行了第二次调试,如果信息传递给addItems()void,那么数据会发生变化,所以我认为线程会以某种方式进行调试。
答案 0 :(得分:0)
如果这不是您正在寻找的解决方案,请道歉。由于缺乏关于你的问题的详细信息,这是根据我可能理解的内容做出的
信息是自定义类吗?如果是这样,我会假设SubItems也是一个List对象。如果这些方案是正确的,那么您的类应该看起来像
public class info
{
public string Text { get; set; }
public List<string> SubItems { get; set; }
/* Other Code */
}
现在,如果我没有弄错,您似乎正在尝试将数据序列化为字符串然后添加到ListView中?如果是这样,有几种方法可以做到这一点:
public class info
{
/* Other Code */
public override string ToString()
{
return $"Username: {Text}; Password: {SubItems[0]}; Points: {SubItems[1]}; Level: {SubItems[2]};"
}
}
如果所有这一切都是真的,你现在可以执行:
info PersonInfo = new Info()
{
Text = Username;
SubItems = new List<string>()
{
Password,
Points.ToString();
Level.ToString();
}
}
ListView1.Items.Add(ParsonInfo.ToString());