首页 > 解决方案 > C# WPF 只要选中项目就增加存储在文本框中的值,取消选中时减少相同的数量

问题描述

我的 WPF 应用程序包含:

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

假设该 TextBox 的值为 100。如果选择了第一个 ComboBox 项并且我们在该按钮上使用 ClickEvent,则 TextBox 的值增加 200。如果选择了第二个 ComboBox 项,则增加 100。'

在这种情况下,来自 TextBox 的值随着每个按钮的单击而不断增加。无论我单击按钮的时间如何,如何将该值保持在 300 或 200(取决于 ComboBox)。

我真的不需要完整的代码,只需要一个逻辑方向,如何在不编写 187 行代码的情况下解决这个问题

标签: c#wpf

解决方案


如何实现这取决于您的要求,但以下示例代码应该会给您这个想法。它使用一个变量来确定该值是否已经增加:

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处理ComboBox.


推荐阅读