2015-09-12 29 views
0

我一直試圖停止添加數字,一旦它達到30或超過30(最大容量)。我的代碼運行並添加數字就好了。我的問題是如何從獲得更多的數字停止一旦它擊中30或進入超過30如何停止向WPF中的ListBox添加元素?

 private void ClickToAddMoreCoins(object sender, RoutedEventArgs e) 
    { 

     //Hides InputBox and takes input text from user. 
     InputBox.Visibility = System.Windows.Visibility.Collapsed; 

     // Ensuring that input from user is a integer number 
     String input = InputTextBox.Text; 
     var result = 0; 
     if (int.TryParse(input, out result)) 
     { 
      //Adding number of coins to CoinListBox 
      //CoinListBox.Items.Add(result); 

      sum += result; 
      try 
      { 
       CoinListBox.Items.RemoveAt(0); 
      } 
      catch 
      { } 
      CoinListBox.Items.Add(sum); 
     } 
     else 
     { 
      MessageBox.Show("Please enter a number of coins"); 
     } 
     //sum = CoinListBox.Items.Cast<object>().Sum(x => Convert.ToInt32(x));  
     if(sum > 30) 
     { 
      //CoinListBox.Items.Add 
      MessageBoxResult answer = MessageBox.Show("You cannot enter more than 30 coins. Do you want to end?", "Message", MessageBoxButton.YesNo, MessageBoxImage.Question); 
      if (answer == MessageBoxResult.Yes) 
      { 
       Application.Current.Shutdown(); 
      } 
     } 

     // Resets InputBox. 
     InputTextBox.Text = String.Empty; 
    } 
    //This method hides InputBox. 

} 
+1

'將'ListBox'綁定到像List <>的集合,並將集合限制爲您的需要。只需驗證你的清單。 –

+0

@AbinMathew怎麼樣?我真的很新的WPF:(... – progx

+0

找到這[鏈接](http://stackoverflow.com/q/9391746/2470362) –

回答

0

我改變你的代碼,使其工作就像你所需要的。
但在使用代碼之前,請考慮通過刪除不必要的註釋和行來編寫乾淨可讀的代碼。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 

namespace WPF_Demo 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 
     //This method handles the "Click to add new coins button" 
     private void AddNewCoins(object sender, RoutedEventArgs e) 
     { 
      InputBox.Visibility = System.Windows.Visibility.Visible; 
     } 
     //This method handles input text entered by user 
     int sum = 0; 
     private void ClickToAddMoreCoins(object sender, RoutedEventArgs e) 
     { 

      //Hides InputBox and takes input text from user. 
      InputBox.Visibility = System.Windows.Visibility.Collapsed; 

      // Ensuring that input from user is a integer number 
      String input = InputTextBox.Text; 
      var result = 0; 
      if (int.TryParse(input, out result)) 
      { 
       //Adding number of coins to CoinListBox 
       //CoinListBox.Items.Add(result); 
       ////////////////////////////////////////////////////////////////// 

       //sum = CoinListBox.Items.Cast<object>().Sum(x => Convert.ToInt32(x));  
       if (sum + result > 30) 
       { 
        //CoinListBox.Items.Add 
        MessageBoxResult answer = MessageBox.Show("You cannot enter more than 30 coins. Do you want to end?", "Message", MessageBoxButton.YesNo, MessageBoxImage.Question); 
        if (answer == MessageBoxResult.Yes) 
        { 
         Application.Current.Shutdown(); 
        } 
       } 
       else 
       { 
        // Resets InputBox. 
        sum += result; 
        try 
        { 
         CoinListBox.Items.RemoveAt(0); 
        } 
        catch 
        { } 
        CoinListBox.Items.Add(sum); 
        ////////////////////////////////////////////////////////////////// 
       } 

      } 
      else 
      { 
       MessageBox.Show("Please enter a number of coins"); 
      } 
      InputTextBox.Text = String.Empty; 
     } 
     //This method hides InputBox. 
     private void Cancel_Button_Click(object sender, RoutedEventArgs e) 
     { 
      //Hides InputBox. 
      InputBox.Visibility = System.Windows.Visibility.Collapsed; 

      // Resets InputBox. 
      InputTextBox.Text = String.Empty; 
     } 
    } 
} 
+0

您的代碼的作品,但讓我們說:我加4,然後當我點擊在「點擊添加硬幣」按鈕上,我看到了文本輸入中的最後一個輸入值(4)..爲什麼這樣?我希望文本輸入值乾淨(沒有)......我該如何解決這個問題? – progx

+0

沒關係我只是修好了,非常感謝你!! – progx

+0

不客氣。 –