2016-12-15 7 views
0

小さなことかもしれませんが、答えが見つかりません。C#WPF:リストボックス内のボタンで最大値を見つけよう

私が望むのは、ListBoxにいくつかの数字を追加するときです。「最大のボタン」を押すと、リストから最大の数字が表示されます。これは、コードで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のように、リストボックスをビューモデルのObservableCollection にバインドする必要があります。数値演算(SumやLargestなど)は、ObservableCollectionで動作するビューモデルのメソッドとして実装する必要があります。ウェブでMVVMを検索します。 – Clemens

+0

MSDNの[データテンプレートの概要](https://msdn.microsoft.com/en-us/library/ms742521(v = v.1.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

あなたはこのような何かを行うことができます:それは簡単ですLINQのを使用して

int highestNum = 0; 

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

highestNumTextbox.text = highestNum; 
2

var items = numberListBox.Items.OfType<ListBoxItem>; 
var numbers = items.Select(x => Convert.ToInt32(x.Content)); 
var largest = numbers.Max(); 
関連する問題