这是我的密码:
var _ndcAccounts = new List<Account>();
objectListView1.SetObjects(_ndcAccounts);现在,我想让用户能够使用ObjectListView添加、编辑和删除项目。
添加和删除是非常直接的。但是为了编辑,我需要:
_ndcAccounts[_ndcAccounts.FindIndex(account => account == (Account)objectListView1.SelectedObject)] = new Account();是否有任何方法可以更容易地在列表中找到所选对象的索引?可以对ObjectListView进行排序或筛选。
谢谢。
发布于 2014-08-04 20:43:02
如果_ndcAccounts是List<Account>,那么您所需要做的就是这样做。
int index = _ndcAccounts.IndexOf((Account)objectListView1.SelectedObject);
//Modify as you see fit
_ndcAccounts[index] = new Account();如果您只想修改Account对象中的属性而没有在列表中分配索引--一个新的帐户对象--那么您所需要做的就是直接修改objectListView1.SelectedObject,因为它应该是对列表中当前选定的Account的引用,对它的任何修改都将反映在列表中(除了创建一个新的帐户实例)。
我不知道Account的结构,但这里有一个例子。
((Account)objectListView1.SelectedObject).Name = "My New Account";上面的内容将使用新的名称修改Account对象,并且它也将反映在列表中,因为您实际上是在修改列表中的项。
发布于 2014-08-04 20:57:33
是否有像在SelectedIndices中一样的ListView属性?就像这样:
ListView.SelectedIndexCollection indexes =
objectListView1.SelectedIndices;
Account selectedAccount = objectListView1.Items[indexes.Items[0]];您需要检查selectedAccount是否为空。此外,如果选择了多个帐户,则可能需要在索引上使用foreach循环来处理此问题,以获得所选帐户的列表。
发布于 2021-06-10 06:51:30
下面从olv (CellEditFinished)开始对我起作用。
e.ListViewItem.Index
https://stackoverflow.com/questions/25127115
复制相似问题