2010-05-20 3 views
0

C# windows forms를 사용하고 있습니다. 여러 버튼이 listview에 링크되어있어 버튼을 누르면 새 항목이 listview에 추가됩니다. 목록보기의 열 머리글은 '이름'과 '금액'입니다. 다른 버튼을 누르면 다른 항목이 목록보기에 추가됩니다. 내가 도움이 필요한 것은 다음과 같습니다 : 동일한 버튼을 두 번 누르면 두 번째 클릭시 "1"에서 "2"로 이동합니다. 그래서 아이템 이름은 중복되지 않지만 금액은 증가합니다. 문제는 현재 버튼을 링크 목록에 연결하는 데 텍스트를 사용하는 것입니다. ("Coca Cola", "1") 항목 이름을 코카콜라 및 양을 1로 추가합니다. 정수와 관련이 있다는 것을 알고 있으므로 도와주세요!C# windows는 목록보기에 링크 단추를 표시합니다.

감사

답변

1

사용자가 현재의 모든 ListViewItems 통해 새로운 행 바로 루프를 첨가하고, 그 중 하나가 이미 동일한 이름을 가질 경우이므로 양의 열이 증가하는 경우, 검사 전에 버튼을 누른다. 그렇지 않으면 현재 행을 추가하십시오.

bool found = false; 
foreach (ListViewItem item in listView1.Items) 
{ 
    if (item.Text.Equals("Coke")) 
    { 
      int amt = int.Parse(item.SubItems[1].Text); 
      amt++; 
      item.SubItems[1].Text = amt.ToString(); 
      found = true; 
    } 
} 
if (!found) 
{ 
    ListViewItem item = listView1.Items.Add("Coke"); 
    item.SubItems.Add("1"); 
} 
+0

완벽하게 작동했습니다. 내가 별도의 클래스에서 만든 목록에 연결된 printitems 메서드가 있습니다. 금액 항목에 항목을 어떻게 추가합니까? 코드는 아래와 같습니다 : private void printItems (항목 항목) { ListViewItem item = new ListViewItem(); item.Text = items.ItemName; item.SubItems.Add (items.AmountOfItem); listView1.Items.Add (item); } – Richard

+0

질문을 이해하지 못 했으므로 ListView의 각 항목에 PrintItem의 실제 목록을 저장 하시겠습니까? 그렇다면'item.Tag = items;'와 같은 것을하십시오. item은 방금 생성 된 ListViewItem입니다. 또는 금액 열에 저장하려면 금액 하위 항목을 만들 때 'item.SubItems.Add (items.AmountOfItem) .Tag = items;'와 같은 태그를 추가하십시오. –

+0

@ 리차드; ho *가 제공 한 코드는 새로운 printItems 메소드입니다. 하드 코딩 된 "Coke"를 자신의 (아이템) 값으로 대체해야합니다. – riffnl

1
var amount = new Dictionary<string, int>(); 

Button1_Click() 
{ 
    if(amount["Coca Cola"]<=0) 
    { 
     add a listview items with amount 0 
    } 
    // find the listitem with the value "Coca Cola" using FindItemWithText() Method 
    // set the value of ++amount["Coca Cola"] to that listitem in the amount field 
} 

손에지도를 갖는 다른 시나리오에서 목록보기 항목을 통해 읽기 읽기 방지 할 수 있습니다.

+0

진짜 관심사에서, 그 예제에서 왜 형식 유추를 사용 했습니까? –

+0

@Martin Milan : 내가 왜 안되나요? – Amsakanna

+0

당신이 할 수없는 진정한 이유는 없지만 - 왜 나는 당신이 꿈꾸 었는지 궁금합니다. –

관련 문제