C# 在列表视图c中搜索项目#
我尝试在列表视图中添加项。 但这段代码似乎根本不起作用。 我哪里做错了C# 在列表视图c中搜索项目#,c#,C#,我尝试在列表视图中添加项。 但这段代码似乎根本不起作用。 我哪里做错了 btn.Click += (senders, eventArgs) => { foreach (ListViewItem lvis in lvSales.Items) { if (lvis.SubItems[0].Text == btn.Text) { MessageBox.Show("!!!!!!!"); } el
btn.Click += (senders, eventArgs) =>
{
foreach (ListViewItem lvis in lvSales.Items)
{
if (lvis.SubItems[0].Text == btn.Text)
{
MessageBox.Show("!!!!!!!");
}
else
{
lvis.Text = count.ToString();
lvis.SubItems.Add(btn.Text);
lvis.SubItems.Add(btn.Name);
lvis.SubItems.Add(count.ToString());
lvis.SubItems.Add(btn.Tag.ToString()); // Email
lvSales.Items.Add(lvis);
count++;
}
}
};
我想将项目添加到列表视图。
如果项目已添加,则将添加数量
否则它将添加新的。
顺便说一句,当我单击按钮时,什么也没有发生。您无法将项目添加到使用foreach(lvSales.items)迭代的集合中。考虑将For转换成其他循环,比如……(……< P>)试试这个。它不是完全正确的,但是尝试修复小错误。
var itemFound = false;
foreach (var listViewItem in lvSales.Items)
{
if (listViewItem.SubItems[0].Text == btn.Text)
{
itemFound = true; break;
}
}
if (!itemFound)
{
var newlistViewItem = new ListViewItem();
newlistViewItem.Text = count.ToString();
newlistViewItem.SubItems.Add(btn.Text);
newlistViewItem.SubItems.Add(btn.Name);
newlistViewItem.SubItems.Add(count.ToString());
newlistViewItem.SubItems.Add(btn.Tag.ToString()); // Email
lvSales.Items.Add(lvis);
}
在创建新的listviewitem之前,请重新实例化listviewitem。除此之外,您的代码实际上不起作用。您需要在找到它时增加QUNAITY值,并在未找到它时创建新的QUNAITY值……现在,您在找不到它时增加QUNAITY值,而此时,您甚至没有真正增加QUNAITY值。此行“lvSales.Items.Add(lvis)”;'在foreach循环中将使应用程序崩溃的情况下,不要编辑正在迭代的集合。//重新实例化listviewitem,设置其值,然后添加它是什么意思?重新初始化/或重新创建listviewitem对象。从新对象开始。设置其值,然后添加它。看起来它没有使用System.Linq;进入foreachaddndows.Forms.ListView.ListViewItemCollection”不包含“Where”的定义,并且找不到扩展方法“Where”“接受类型为“System.Windows.Forms.ListView.ListViewItemCollection”的第一个参数(是否缺少using指令或程序集引用?)更新的代码,看起来ListViewItemCollection没有实现IEnumberable。您可以使用已编辑的代码。谢谢。代码刚刚出现问题。它应该是“ListViewItem ListViewItem in lvSales.Items”,而不是var。非常感谢。!!
var itemFound = false;
foreach (var listViewItem in lvSales.Items)
{
if (listViewItem.SubItems[0].Text == btn.Text)
{
itemFound = true; break;
}
}
if (!itemFound)
{
var newlistViewItem = new ListViewItem();
newlistViewItem.Text = count.ToString();
newlistViewItem.SubItems.Add(btn.Text);
newlistViewItem.SubItems.Add(btn.Name);
newlistViewItem.SubItems.Add(count.ToString());
newlistViewItem.SubItems.Add(btn.Tag.ToString()); // Email
lvSales.Items.Add(lvis);
}