2016-12-15 99 views
0

这可能是一件小事,但我找不到答案。C#WPF:使用列表框中的按钮查找最大值

我想要的是当你添加一些数字到列表框中,当你按下“最大按钮”时,它将显示列表中最大的数字。

这里是如何看起来像:Image Link

这是代码。

private void addButton_Click(object sender, RoutedEventArgs e) 
    { 
     ListBoxItem newItem = new ListBoxItem(); 
     newItem.Content = addNumberTextBox.Text; 
     numberListBox.Items.Add(newItem); 
    } 

    private void sumButton_Click(object sender, RoutedEventArgs e) 
    { 
     int sum = 0; 
     foreach (ListBoxItem item in numberListBox.Items) 
     { 
      sum += Convert.ToInt32(item.Content); 
     } 
     sumTextBox.Text = Convert.ToString(sum); 
    } 

    private void largestButton_Click(object sender, RoutedEventArgs e) 
    { 
     ???? 
    } 
} 
+0

的可能的复制[如何查找列表框的最大和最小值] (http://stackoverflow.com/questions/7963144/how-to-find-the-greatest-and-lowest-value-in-listbox) – abdul

+2

而不是明确添加ListBoxIte ms将数字字符串作为内容,您应该将您的ListBox绑定到视图模型中的'ObservableCollection '。数值运算(如Sum和Largest)应该作为视图模型中的ObservableCollection操作的方法来实现。在网络上搜索MVVM。 – Clemens

+0

另请参阅MSDN上的[数据模板概述](https://msdn.microsoft.com/en-us/library/ms742521(v = vs.110).aspx)文章。 – Clemens

回答

0
private void largestButton_Click(object sender, RoutedEventArgs e) 
    { 
      int largest= 0; 
      foreach (ListBoxItem item in numberListBox.Items) 
      { 
       if (Convert.ToInt32(item.Content)>largest) 
        largest=Convert.ToInt32(item.Content); 

      } 
      largestTextBox.Text = Convert.ToString(largest); 
    } 
0

你可以做这样的事情:

int highestNum = 0; 

foreach (ListBoxItem item in numberListBox.Items) 
{ 
    if (item > highestNum) 
    { 
     highestNum = item; 
    } 
} 

highestNumTextbox.text = highestNum; 
2

使用LINQ它的简单,

var items = numberListBox.Items.OfType<ListBoxItem>; 
var numbers = items.Select(x => Convert.ToInt32(x.Content)); 
var largest = numbers.Max();