0
ListViewコントローラからの重複したエントリを列テキストで防ぐ必要があります。重複が見つかった場合は、さらに処理するためにListView Itemを取得する必要があります。私はみんなが言うのを見た。c#列テキストによるリストビューの重複を防ぐ方法
ListViewItem item = ListView3.FindItemWithText("test");
if (!listView1.Items.ContainsKey(txt))
{
// doesn't exist, add it
}
どのように指さすことができますかColumn text
?? array
にIDを追加し、array value exists
のチェックの後に重複を防止しました。その場合はentry
が重複しています。
これは私のコードです。
rd = cmd.ExecuteReader();
// Validation not working - duplicating ListviewItems
while (rd.Read()) {
ListViewItem lvvi = new ListViewItem(rd.GetString(0));
lvvi.SubItems.Add(rd.GetString(1));
lvvi.SubItems.Add(rd.GetString(5));
lvvi.SubItems.Add("1");
lvvi.SubItems.Add(rd.GetString(0));
int listViewItemID;
int[] ids;
ids = new int[100];
if (listView3.Items.Count > 0)
{
int addingItemID;
//ADD ListView ids into array
int i=0;
foreach (ListViewItem li in listView3.Items)
{
listViewItemID = Int32.Parse(li.SubItems[0].Text);
addingItemID = Int32.Parse(rd.GetString(0));
ids[i] = listViewItemID;
i++;
}
//Check item allready exsist
if (ids.Contains(Int32.Parse(rd.GetString(0))))
{
MessageBox.Show("sdsd");
}
else {
listView3.Items.Add(lvvi);
}
}
else {
listView3.Items.Add(lvvi);
}
}
//Calculate Price summery
this.calculatePrice();
あなたはLINQのを使用することができれば、これは役立つかもしれない:http://stackoverflow.com/questions/ 489258/linqs-distinct-on-a-particular-property – ADyson