c# - C# WPF 只要选中项目就增加存储在文本框中的值,取消选中时减少相同的数量
问题描述
我的 WPF 应用程序包含:
1x 文本框 1x 组合框(其中有 2 个项目) 1x 按钮
假设该 TextBox 的值为 100。如果选择了第一个 ComboBox 项并且我们在该按钮上使用 ClickEvent,则 TextBox 的值增加 200。如果选择了第二个 ComboBox 项,则增加 100。'
在这种情况下,来自 TextBox 的值随着每个按钮的单击而不断增加。无论我单击按钮的时间如何,如何将该值保持在 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
处理ComboBox
.
推荐阅读
- php - 如何在 Shopware 5 商品网址中使用自定义字段?
- r - 向 data.frame 添加一个新列,其值是一列的随机样本并以另一列为条件
- conda - 在 anaconda 提示环境中安装 numpy 时出错
- c++ - 隐式常量转换溢出 [-Werror=overflow]
- php - bind_param 和 bind_result 有区别吗?
- sql - BigQuery: check value for one of repeated ID and store in new column for all repeated IDs
- angularjs - Kendo Mobile Action Sheet 按钮点击未注册,但硬按是
- c# - 将对象转移到另一个页面时出现问题
- python - 将字典值转换为python中的键
- postgresql - Postgres 每个子表的默认值不同?