如何计算组合框中的平均值

时间:2015-04-08 15:12:04

标签: c# wpf

我正在使用一个带有3个组合框和1个按钮的简单程序,还有1个文本框。当我单击文本框中的平均按钮时,应显示组合框中3个所选数字的平均值。我也有一个后面的代码,但它不起作用。可能有人帮助我

    <ComboBox Name="cb6" Margin="2,9,0,0">
            <ComboBoxItem Content="5"/>
            <ComboBoxItem Content="6"/>
            <ComboBoxItem Content="7"/>
            <ComboBoxItem Content="8"/>
            <ComboBoxItem Content="9"/>
            <ComboBoxItem Content="10"/>
        </ComboBox>
        <ComboBox Name="cb7" Margin="2,9,0,0">
            <ComboBoxItem Content="5"/>
            <ComboBoxItem Content="6"/>
            <ComboBoxItem Content="7"/>
            <ComboBoxItem Content="8"/>
            <ComboBoxItem Content="9"/>
            <ComboBoxItem Content="10"/>
        </ComboBox>
        <ComboBox Name="cb8" Margin="2,9,0,0">
            <ComboBoxItem Content="5"/>
            <ComboBoxItem Content="6"/>
            <ComboBoxItem Content="7"/>
            <ComboBoxItem Content="8"/>
            <ComboBoxItem Content="9"/>
            <ComboBoxItem Content="10"/>
        </ComboBox>


<TextBox Name="txtaverage" Width="100" Margin="0,10,0,0"/>
        <Button Name="btnaverage" Width="80" Content="Mesatarja" Click="btnmesatarja_Click" />

   behind code 
  txtaverage.Text = (Convert.ToDouble(cb6.SelectedItem)+Convert.ToDouble(cb7.SelectedItem)+ Convert.ToDouble(cbnota8.SelectedItem)/3).ToString();

1 个答案:

答案 0 :(得分:0)

对于简单的情况,您可以使用combobox.Text

txtaverage.Text = ((Convert.ToDouble(cb6.Text)+Convert.ToDouble(cb7.Text)+ Convert.ToDouble(cb8.Text))/3).ToString();

在其他情况下,我建议从selectedItem / SelectedValue中获取对象,并在其内容中查找您的值。

- 进一步澄清op

        var sum = 0.0;
        var divisor = 0;
        if (!string.IsNullOrEmpty(cb6.Text))
        {
            sum += Convert.ToDouble(cb6.Text);
            divisor++;
        }

        if (!string.IsNullOrEmpty(cb7.Text))
        {
            sum += Convert.ToDouble(cb7.Text);
            divisor++;
        }

        if (!string.IsNullOrEmpty(cb8.Text))
        {
            sum += Convert.ToDouble(cb8.Text);
            divisor++;
        }

        if (divisor > 0)
        {
            txtaverage.Text = (sum/divisor).ToString();
        }