Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 是否使用datagrid.selecteditem从一个observablecollection中删除Grep对象并将其删除到另一个集合中?_Wpf_Datagrid_Observablecollection_Selecteditem - Fatal编程技术网

Wpf 是否使用datagrid.selecteditem从一个observablecollection中删除Grep对象并将其删除到另一个集合中?

Wpf 是否使用datagrid.selecteditem从一个observablecollection中删除Grep对象并将其删除到另一个集合中?,wpf,datagrid,observablecollection,selecteditem,Wpf,Datagrid,Observablecollection,Selecteditem,我有个问题。我有两个可观察的集合,它们的对象与内容相同 我使用observablecollection从数据网格中grep一个对象 datagrid.selecteditem as object 并希望将其从第二个可观察集合中删除。line语句看起来像 obscollection.remove(datagrid.selecteditem as object); 这些对象完全相同,但当我计算obscollection时,该对象未被删除 我怎样才能解决这个问题?请不要问我为什么需要两个内容相同的

我有个问题。我有两个可观察的集合,它们的对象与内容相同

我使用observablecollection从数据网格中grep一个对象

datagrid.selecteditem as object
并希望将其从第二个可观察集合中删除。line语句看起来像

obscollection.remove(datagrid.selecteditem as object);
这些对象完全相同,但当我计算obscollection时,该对象未被删除

我怎样才能解决这个问题?请不要问我为什么需要两个内容相同的集合;)

当你说“对象完全相同”时,你的意思是它们是等价的,还是它们是相同的实例?我的猜测是它们是等价的,但实际上它们不是同一个对象实例。ObservaleCollection的.remove()方法将查找引用相等,因此,如果它不是同一个对象实例,它将找不到您要查找的对象(因此不会删除它)

我建议您查看有关对象等价性的信息,并与之交谈,正如您所做的那样(如果您进行搜索,则会发现更多)

如果两个集合具有等效的对象,但不引用同一实例,则有许多简单的解决方案。一种方法是实现IComparable接口,或者使用类似LINQ的东西在第二个集合中找到等效对象并手动删除它


希望这能有所帮助。

是的,它是等效的,而不是相同的。我会读这篇文章的,谢谢