当前位置:  开发笔记 > 编程语言 > 正文

将ListView与对象集合相关联

如何解决《将ListView与对象集合相关联》经验,为你挑选了1个好方法。

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



1> Asmor..:

出于争论的目的,这是我们的设计目标:我们有一个"怪物"对象,而"怪物"将有几个"权力".用户通过ListView项与权限交互.

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

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

其中name是电源的名称和字符串.此ListViewItem将作为键,允许我们稍后识别和检索此功能.

接下来,我们需要在Monster对象中添加一些内容来跟踪所有这些功能.

public Dictionary 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是ListView,我们将ListViewItems添加到.

好的,所以我们在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作为关键时,ListViews和Dictionaries非常好地融合在一起,这是一种快乐!


我认为这是一个方便的提示,如果我想分享一个提示,我建议发布并回答我自己的问题.我提前输入了答案并在提交问题后粘贴了它.
推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有