gpt4 book ai didi

c# - wpf中列表框的值总和

转载 作者:太空宇宙 更新时间:2023-11-03 20:14:21 25 4
gpt4 key购买 nike

我在 WPF 中有一个 TextBox 和一个 ListBoxListBox (listAmount) 包含一些值,我想要那个 TextBox (txtTotalAmount) 中的这些值的总和。

我目前正在使用这段代码:

int i = 0;
int sum = 0;

for (i = 0; i < listAmount.Items.Count; i++)
{
sum = sum + Convert.ToInt32(listAmount.Items[i]);
}

txtTotalAmount.Text = sum.ToString();

我得到这个错误:

Unable to cast object of type 'System.Windows.Controls.ListBoxItem' to type 'System.IConvertible'

我会很感激你的。

最佳答案

错误消息说明 listAmount.Items[i]返回 ListBoxItem 类型的实例.该类派生自 ContentControl ,这就是为什么它的 Content property应包含您要查找的实际值。

因此,尝试:

sum += Convert.ToInt32(((ListBoxItem)listAmount.Items[i]).Content);

类型转换是必要的,因为 indexer of ItemCollection 输入为 object .


也就是说,您是否尝试过使用集合(例如 ObservableCollection<int> )来存储您的值并将该集合设置为 ItemsSource 你的列表框?然后,您可以直接从集合中获取整数值并对其求和,而无需进行任何转换。

将此声明添加到您的窗口以存储整数值列表:

private readonly ObservableCollection<int> values = new ObservableCollection<int>();

然后,在您调用 InitializeComponents 之后, 分配 ItemsSource属性:

listAmount.ItemsSource = values;

values 中添加和删除您的值随时列出;列表的内容将始终反射(reflect)在列表框中。

为了检索这些值的总和,您可以简单地使用以下命令:

int sum = values.Sum();

请注意 System.Linq namespace需要包含在 using 中让它工作的指令,或者 Sum method不会被发现。)

关于c# - wpf中列表框的值总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17880399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com