如何从ListView中的对象更新属性值

黑色溶液

我有两个文件。一个名为Wood的类的文件我已经用此类创建了一些对象。这些对象包括属性WoodType和其他一些。我将对象填充到名为woodObjects的数组中第二个文件是Form,其中有一个ListView

所以我的目标是,将所有具有属性的对象添加到ListView。我是那样做的:

String[] row = { (listView1.Items.Count + 1).ToString(), WoodType, condition, isDry};
ListViewItem item = new ListViewItem(row);
listView1.Items.Add(item);

成功。

现在,我必须更新ListView中一个对象的WoodType属性我为此创建了一个按钮“ change Type”。我想到了用户单击要更改对象的行,然后单击“更改类型”按钮以更改WoodType为了实现这一点,我想获取该行的索引,而不是使用其设置的Accessor更改“ WoodType”的值,如下所示:

woodObjects[indexOfRowFromListView].WoodType = "Oak Wood";

是的,我知道,这永远不会那样做。因此,我的问题是:如何选择正确的索引以及如何更改属性的值?

*我还考虑了删除对象,但是保存了其值,因此我可以创建一个具有与WoodType相同值的新对象感谢您的帮助!

枯萎

我认为最干净的解决方案将涉及编写新的ListViewItem实现。像这样:

public class WoodObjectListItem : System.Windows.Forms.ListViewItem
{
    public Wood WoodObject { get; }

    public WoodObjectListItem(int rowNumber, Wood woodObject) 
        : base(new string[] { rowNumber.ToString(), woodObject.WoodType, woodObject.Condition, woodObject.IsDry })
    {
        WoodObject = woodObject;
    }

    public void ChangeType()
    {
        WoodObject.WoodType = "Oak Wood";
    }
}

然后,您可以将woodObjects添加到列表视图中,如下所示:

listView1.Items.Add(new WoodObjectListItem(listView1.Items.Count + 1, woodObject));

当单击按钮时,您可以执行以下操作:

if (listView1.SelectedItem is WoodObjectListItem woodObjectListItem)
    woodObjectListItem.ChangeType();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何更新数组中许多对象的属性的值

如何从对象数组中删除重复值并使用 JavaScript 更新对象属性

如何在javascript中更新对象的属性?

如何通过属性更新数组中的对象

如何更新数组中特定对象的属性

如何更新MongoDb对象中的messageRead属性?

如何更新 useState 钩子中的对象属性?

如何使用 javascript 中的输入表单更新对象属性值数组?

如何减去对象属性中的特定值?

如何更新Vuejs中的数据属性值?

如何更新对象属性?

如何更新地图对象的属性值?

如何通过参数变量更新对象的属性值

JavaScript更新对象属性值

从Javascript的setTimeout函数中更新对象的属性值

HTML输出中对象的属性值未更新

如果对象的属性,VueJS 不会更新组件中的存储值

将属性更新为字典中的值的对象

属性名称在变量中时,如何获取对象属性值?

如何从对象数组中获取对象特定属性的值?

如何从Javascript对象的属性路径中查找对象值

如何在 JSON 对象中更改对象的属性值

Javascript:如何为对象数组中的对象属性设置值?

如何在React中更新嵌套(对象值的对象)状态

如果对象属性值未找到,如何使用聚合管道更新多个文档并在数组中插入项目

如何从 JavaScript 中的对象数组中获取属性值

如何从JavaScript中的对象数组中检索属性值

如何更新 firestore 文档中字段对象的属性?

如何在 Mongoose 中更新对象内的属性