gpt4 book ai didi

c# - 将 ListView 与对象集合相关联

转载 作者:行者123 更新时间:2023-11-30 20:14:46 25 4
gpt4 key购买 nike

如何使用 ListView 向用户显示对象集合并管理这些对象?

最佳答案

为了争论的目的,我们的设计目标是:我们有一个“怪物”对象,而这个“怪物”将有几个“力量”。用户通过 ListView 项目与权力互动。

首先,我们创建一个 Power 对象。为对象提供以下方法:

public ListViewItem makeKey()
{
return new ListViewItem(name);
}

其中 name 是电源的名称,是一个字符串。此 ListViewItem 将用作键,使我们能够在以后识别和检索此功能。

接下来,我们需要在 Monster 对象中的某处添加以跟踪所有这些能力。

public Dictionary<ListViewItem,Power> powers;

所以现在我们需要一种方法来为怪物增加力量。

public void addPower(Power newPower) {
ListViewItem key = newPower.makeKey();
monster.powers.add(key, newPower);
}

好的,差不多完成了!现在我们有一个 ListViewItems 的字典,它与怪物的力量有关。只需从该字典中获取键并将它们粘贴到 ListView 中:

foreach (ListViewItem key in powers.Keys)
powerList.Items.Add(key);

其中 powerList 是我们要将 ListViewItems 添加到的 ListView。

好的,我们在 ListView 中得到了 ListViewItems!现在,我们如何与这些互动?制作一个按钮,然后制作一个类似这样的功能:

private void powerRemoveButton_Click(object sender, EventArgs e)
{
if (powerList.SelectedIndices.Count > 0)
{
int n = powerList.SelectedIndices[0];
ListViewItem key = powerList.Items[n];
monster.powers.Remove(key);
powerList.Items.Remove(key);
}
else
{
MessageBox.Show("No power selected.");
}
}

就是这样。我希望你发现这很有帮助。我不确定这是否是他们设计的一个有意方面,但是当您使用 ListViewItem 作为键时,ListView 和字典非常好地融合在一起,这是一种乐趣!

关于c# - 将 ListView 与对象集合相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/99653/

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