删除ObservableCollection中的一个Item

 公安边防临高支队警务微博_821 发布于 2023-02-12 17:03

我有一些方法,如:

public void RemoveItem(ObservableCollection collection, SomeClass instance)
{
    if(collection.Contains(instance))
    {
        collection.Remove(instance);
    }
}

首先,即使集合包含实例,if句子仍然返回false.

其次,我删除了if句子,只是让集合可以删除实例.并且在执行之后,集合仍保留其原始项目,其中仍包含实例.

是引用问题,但如何解决?我只是想从的ObservableCollection中删除一个项目,并保持其显着的功能(这困扰了我在这里).

1 个回答
  • 您的问题是您正在尝试从不在该集合中的集合删除对象.它可能具有相同的属性值,但它不是同一个对象.如果您的对象具有唯一可识别的属性,则有一种简单的方法,例如Id:

    public void RemoveItem(ObservableCollection<SomeClass> collection, SomeClass instance)
    {
        collection.Remove(collection.Where(i => i.Id == instance.Id).Single());
    }
    

    我们的想法是,我们从集合中获取实际项目,然后将其传递给Remove方法.

    2023-02-12 17:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有