2017-06-11 5 views
1

私は以前に質問してみましたが、十分説明していませんでした。私はもう一度やり直すだろう、私は取得し、イメージの文字列を設定し、文字列を取得する辞書を持っています。辞書項目はlistBoxに格納され、別のコンボボックスに設定する項目をダブルクリックすると表示されます。私は、辞書を反復するボタンをクリックしたいと思うし、それらが辞書の中の何かに合っていれば、それはlistViewに保存されます。私は、ここにあるだけで、文字列の名前と価格かかわらず、画像を望んでいないクラスと辞書: コンボボックス内のすべてのアイテムを使用して辞書を反復処理できますか?

class BookTitle 
    { 
     public string ImageTitle { get; set; } 
     public List<string> Prices { get; } 

     public BookTitle(string imageTitle, params string[] prices) 
     { 
      ImageTitle = imageTitle; 
      Prices = new List<string>(prices.Length); 
      Prices.AddRange(prices); 
     } 
    } 

    private Dictionary<string, BookTitle> prices = new Dictionary<string, BookTitle> 
    { 
     { "Visual Basic", new BookTitle("vb.png", "$55") }, 
     { "Java", new BookTitle("java.png", "$45") }, 
     { "C#", new BookTitle("c#.png", "$75") }, 
     { "LAN Networks", new BookTitle("lan.png", "$68") }, 
     { "Windows Networking", new BookTitle("windows.png", "$49") }, 
     { "More About Networking", new BookTitle("more.png", "$54") }, 
     { "Web Programming", new BookTitle("web.png", "$67") }, 
     { "JavaScript", new BookTitle("javascript.png", "$64") }, 
     { "ASP", new BookTitle("asp.png", "$50") } 
    }; 

は、あなたたちは、私はちょうど新しいクラスを作るべきだと思いますか?私は他の多くの間でこれを試してみました:

private void finalizeButton_Click(object sender, EventArgs e) 
    { 
     string cartItems = cartComboBox.Items.ToString(); 

     if (prices.Keys.Contains(cartItems)) 
     { 
      BookTitle bt = prices[cartItems]; 
      ListViewItem list = cartListView.Items.Add(cartItems); 
      list.SubItems.Add(cartItems); 
     } 

    } 

答えて

1

あなたはこの方法を行うことができ、それは非常に有用だったと右track.Iが終了した上で私を得たので、私はあなたの答えを受け入れる@Sajeetharan

private void finalizeButton_Click(object sender, EventArgs e) 
     { 
      foreach (var cmbObj in cartComboBox.Items) 
      { 
       if (prices.Keys.Contains(cmbObj.ToString())) 
       { 
        BookTitle tempOut; 
        ListViewItem list = 
        cartListView.Items.Add(cmbObj.ToString()); 
        if (prices.TryGetValue(cmbObj.ToString(), out tempOut)) 
         list.SubItems.Add(tempOut.Prices[0].ToString()); 

       } 
      } 

     } 
+0

これは、comboBoxのテキストでうまくいきますが、文字列値($ 55)を引き出して、SubItemsにも格納しようとしています。 – KobiashiMaru

1

+0

cool、happy to help – Sajeetharan

+0

申し訳ありません私はまだnoobishで、1分前にupvoteできませんでした。ありがとうございました! – KobiashiMaru

+0

また、あなたのコードを私の上に提案しますか?もしそうなら、なぜですか?私はできることを学ぶことを試みているだけです! – KobiashiMaru

関連する問題