首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SelectedObject中获取ObjectListView索引

在SelectedObject中获取ObjectListView索引
EN

Stack Overflow用户
提问于 2014-08-04 20:36:30
回答 3查看 2.4K关注 0票数 0

这是我的密码:

代码语言:javascript
运行
复制
var _ndcAccounts = new List<Account>();
objectListView1.SetObjects(_ndcAccounts);

现在,我想让用户能够使用ObjectListView添加、编辑和删除项目。

添加和删除是非常直接的。但是为了编辑,我需要:

代码语言:javascript
运行
复制
_ndcAccounts[_ndcAccounts.FindIndex(account => account == (Account)objectListView1.SelectedObject)] = new Account();

是否有任何方法可以更容易地在列表中找到所选对象的索引?可以对ObjectListView进行排序或筛选。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-04 20:43:02

如果_ndcAccountsList<Account>,那么您所需要做的就是这样做。

代码语言:javascript
运行
复制
int index = _ndcAccounts.IndexOf((Account)objectListView1.SelectedObject);
//Modify as you see fit
_ndcAccounts[index] = new Account();

如果您只想修改Account对象中的属性而没有在列表中分配索引--一个新的帐户对象--那么您所需要做的就是直接修改objectListView1.SelectedObject,因为它应该是对列表中当前选定的Account的引用,对它的任何修改都将反映在列表中(除了创建一个新的帐户实例)。

我不知道Account的结构,但这里有一个例子。

代码语言:javascript
运行
复制
((Account)objectListView1.SelectedObject).Name = "My New Account";

上面的内容将使用新的名称修改Account对象,并且它也将反映在列表中,因为您实际上是在修改列表中的项。

票数 4
EN

Stack Overflow用户

发布于 2014-08-04 20:57:33

是否有像在SelectedIndices中一样的ListView属性?就像这样:

代码语言:javascript
运行
复制
ListView.SelectedIndexCollection indexes = 
    objectListView1.SelectedIndices;

Account selectedAccount = objectListView1.Items[indexes.Items[0]];

您需要检查selectedAccount是否为空。此外,如果选择了多个帐户,则可能需要在索引上使用foreach循环来处理此问题,以获得所选帐户的列表。

票数 1
EN

Stack Overflow用户

发布于 2021-06-10 06:51:30

下面从olv (CellEditFinished)开始对我起作用。

e.ListViewItem.Index

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25127115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档