我正在使用c#窗體。我有多個按鈕鏈接到一個列表視圖,當一個按鈕被按下時,一個新的項目被添加到列表視圖。列表視圖中的列標題是「名稱」和「金額」。當按下不同的按鈕時,不同的項目被添加到列表視圖。我需要幫助的東西如下: 當同樣的按鈕被按下兩次時,我希望第二次點擊從「1」到「2」的金額。所以項目名稱不重複,但金額增加。問題是,我正在使用文本將按鈕鏈接到鏈接列表,例如, (「可口可樂」,「1」),其中項目名稱爲可口可樂,金額爲1.我知道這是與整數有關,所以請幫助!c#窗體鏈接按鈕到列表視圖
感謝
我正在使用c#窗體。我有多個按鈕鏈接到一個列表視圖,當一個按鈕被按下時,一個新的項目被添加到列表視圖。列表視圖中的列標題是「名稱」和「金額」。當按下不同的按鈕時,不同的項目被添加到列表視圖。我需要幫助的東西如下: 當同樣的按鈕被按下兩次時,我希望第二次點擊從「1」到「2」的金額。所以項目名稱不重複,但金額增加。問題是,我正在使用文本將按鈕鏈接到鏈接列表,例如, (「可口可樂」,「1」),其中項目名稱爲可口可樂,金額爲1.我知道這是與整數有關,所以請幫助!c#窗體鏈接按鈕到列表視圖
感謝
當用戶按下一個按鈕,通過所有當前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");
}
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
}
手頭有一張地圖將避免通讀在其它場景列表視圖項閱讀。
出於真正的興趣,您爲什麼在該示例中使用類型推斷? – 2010-05-20 11:43:54
@馬丁米蘭:爲什麼我不應該? – Amsakanna 2010-05-24 08:55:58
沒有真正的理由,你不能 - 但我想知道你爲什麼DID ... – 2010-05-24 11:05:10
謝謝你,這工作完美。我有一個printitems方法,它鏈接到在單獨的類中創建的列表。如何將項目添加到金額列?代碼如下: private void printItems(Items items) { ListViewItem item = new ListViewItem(); item.Text = items.ItemName; item.SubItems.Add(items.AmountOfItem); listView1.Items.Add(item); } – Richard 2010-05-20 09:22:57
不真正理解你的問題,所以你的意思是你想要在ListView中的每個項目中存儲PrintItems的實際列表? 如果是這樣,只需要執行像item.Tag = items;其中item是剛剛創建的ListViewItem。或者,如果您想將其存儲在金額列中,那麼當您創建金額子項時,只需將其添加到其標記中,如「item.SubItems.Add(items.AmountOfItem).Tag = items;'。 – 2010-05-20 09:42:21
@Richard;由ho *給出的代碼是您的新printItems方法 - 除了您需要用您自己的(項目)值替換硬編碼的「可樂」。 – riffnl 2010-05-20 11:15:06