C#WPF增加存储在文本框中的值,只要选择了项目,取消选择时减少相同的金额

C#WPF增加存储在文本框中的值,只要选择了项目,取消选择时减少相同的金额,c#,wpf,C#,Wpf,我的WPF应用程序包含: 1x文本框 1个组合框(其中2个项目) 1x按钮 假设该文本框的值为100。若选择了第一个组合框项目,并且我们在该按钮上使用ClickEvent,则TextBox的值将增加200。如果选择了第二个组合框项,则它会增加100。` 在这种情况下,文本框中的值会随着每次按钮单击而不断增加。 如何将该值保持在300或200(取决于ComboBox),而不考虑我单击按钮的次数 我并不需要一个完整的代码,只需要一个逻辑指导,如何解决这个问题而不需要编写187行代码,如何实现这一点取

我的WPF应用程序包含:

1x文本框 1个组合框(其中2个项目) 1x按钮

假设该文本框的值为100。若选择了第一个组合框项目,并且我们在该按钮上使用ClickEvent,则TextBox的值将增加200。如果选择了第二个组合框项,则它会增加100。`

在这种情况下,文本框中的值会随着每次按钮单击而不断增加。 如何将该值保持在300或200(取决于ComboBox),而不考虑我单击按钮的次数


我并不需要一个完整的代码,只需要一个逻辑指导,如何解决这个问题而不需要编写187行代码,如何实现这一点取决于您的需求,但下面的示例代码应该会告诉您这个想法。它使用一个变量来确定该值是否已增加:

private bool alreadyIncreased;
private void Button_Click(object sender, RoutedEventArgs e)
{
    if (alreadyIncreased)
        return;

    //1. Get the current value of the TextBox
    int.TryParse(tb.Text, out int value);

    //2. Increase the value based on the selected item
    if (cmb.Items.Count > 0 && cmb.SelectedItem == cmb.Items[0])
        value += 200;
    else
        value += 100;

    //3. Display the value in the TextBox
    tb.Text = value.ToString();
    alreadyIncreased = true;
}
例如,您可能希望通过处理组合框的
SelectionChanged
事件来重置变量