从 class 个对象列表中显示 listBox.SelectedItems
Show listBox.SelectedItems from a list of class objects
我有一个包含两个成员(名称和值)的 class。然后我制作了一个从文本文件中填充的 class 对象的列表,因此我在 name
中得到了文本文件中的名称,在 val
中得到了值。然后使用此列表制作一个 listbox
,我在其中显示所有名称。
我想做的是 select 从 listbox
中选择多项(名称),然后将所有这些 val
存储在另一个列表中。这可能吗?
我试过 SelectedItems
但似乎只存储了 class 对象本身。出于某种原因,尽管如此:
foreach (object selectedItem in listBox1.SelectedItems)
{
textBox1.AppendText(listBox1.SelectedValue.ToString() + Environment.NewLine);
}
显示 selected 项的第一个值。如果我 select 三个名字,其中第一个的值为 4
,结果是 4 4 4
您需要使用 "two members" 将 selectedItem
转换为您的 class。然后你可以选择 Value
:
foreach (object selectedItem in listBox1.SelectedItems)
{
MyClass item = (MyClass)selectedItem
textBox1.AppendText(item.Value.ToString() + Environment.NewLine);
}
If I select three names and the first of these has a value of 4 the result is 4 4 4
发生这种情况是因为您没有使用循环中的迭代变量,但您始终使用相同的 listBox1.SelectedValue
!这将是多选项目列表中的第一个
我有一个包含两个成员(名称和值)的 class。然后我制作了一个从文本文件中填充的 class 对象的列表,因此我在 name
中得到了文本文件中的名称,在 val
中得到了值。然后使用此列表制作一个 listbox
,我在其中显示所有名称。
我想做的是 select 从 listbox
中选择多项(名称),然后将所有这些 val
存储在另一个列表中。这可能吗?
我试过 SelectedItems
但似乎只存储了 class 对象本身。出于某种原因,尽管如此:
foreach (object selectedItem in listBox1.SelectedItems)
{
textBox1.AppendText(listBox1.SelectedValue.ToString() + Environment.NewLine);
}
显示 selected 项的第一个值。如果我 select 三个名字,其中第一个的值为 4
,结果是 4 4 4
您需要使用 "two members" 将 selectedItem
转换为您的 class。然后你可以选择 Value
:
foreach (object selectedItem in listBox1.SelectedItems)
{
MyClass item = (MyClass)selectedItem
textBox1.AppendText(item.Value.ToString() + Environment.NewLine);
}
If I select three names and the first of these has a value of 4 the result is 4 4 4
发生这种情况是因为您没有使用循环中的迭代变量,但您始终使用相同的 listBox1.SelectedValue
!这将是多选项目列表中的第一个