C# 将文本框中的值与组合框相乘,并显示在WPF的标签中

C# 将文本框中的值与组合框相乘,并显示在WPF的标签中,c#,wpf,xaml,combobox,C#,Wpf,Xaml,Combobox,我对使用xaml和C#在WPF中编程非常陌生,我在论坛上搜索过类似的问题,但我找不到任何解决问题的方法 我制作了一个包含三个项目的组合框,每个项目都有一个文本内容。当选择其中一项时,我想将文本框中的值乘以一个数字,并在标签中显示结果。这是我的密码: public MainWindow() { InitializeComponent(); int a = Int32.Parse(weight.Text); double b;

我对使用xaml和C#在WPF中编程非常陌生,我在论坛上搜索过类似的问题,但我找不到任何解决问题的方法

我制作了一个包含三个项目的组合框,每个项目都有一个文本内容。当选择其中一项时,我想将文本框中的值乘以一个数字,并在标签中显示结果。这是我的密码:

public MainWindow()
    {
        InitializeComponent();
        int a = Int32.Parse(weight.Text);
        double b;

        if (this.wcf.SelectedItem==weighing)
        {
            b = a * 1.03;
            wll.Content = b.ToString();
        }
        else if (this.wcf.SelectedItem == uptodate)
        {
            b = a * 1.1;
            wll.Content = b.ToString();
        }
        else if (this.wcf.SelectedItem == lessupdated)
        {
            b = a * 1.2;
            wll.Content = b.ToString();
        }

    }

“weight”是文本框的名称,“wcf”是组合框的名称,“weight”、“update”和“lessupdated”是组合框项目的名称,“wll”是标签的名称。这些是在主窗口的xaml中定义的。

您的组合框需要一个事件处理程序。 比如:

<Combobox x:Name="wcf" SelectionChanged="cb_SelectionChanged">[...]</Combobox>

每次单击某个项时,都会调用方法
cb\u SelectionChanged

在构造函数中读取某些内容是没有意义的(用户尚未输入/选择某些内容)。您更可能希望使用某些事件(例如组合框的
SelectionChanged
TextChanged
)并在其中执行上述逻辑(解析、检查和设置)。或者问题是什么?如果我想在一个新的If语句中进一步使用b变量,在我刚才显示的If语句之后,我会得到一个使用未赋值局部变量的错误。我是否需要将b变量转换为int并再次赋值?如果不给变量b赋值,则不能(例如)递增它。在初始化变量时,您可以给它一个默认值(例如,
double b=0
),以便进一步使用它。
private void cb_SelectionChanged(object sender, RoutedEventArgs e)
{
...
}