【发布时间】:2015-08-11 03:38:38
【问题描述】:
我正在尝试创建在网络上运行的Components 列表。我正在尝试获取ObservableCollection 中的所有组件。 ObservableCollection<ClsComponent> 现在我的问题是,如果集合中的某个组件被更改/修改,我将如何将它反映到我的 ObservableCollection 组件
- 有没有办法直接在集合本身中更改它?
- 什么是快速有效的方法?
我尝试过:使用 LINQ 更改它:在集合中找到 Component 并更改它?
var CompFound = Components.FirstOrDefault(x=>x.Id == myId);
Components.Remove(CompFound);
Components.Add(UpdatedComp);
我很确定应该有更优化的方法来做到这一点。请提出建议。
编辑
我正在尝试在函数中编写代码,以便获取Source Component 和Destination Component 的参数。函数是这样的
public void UpdateComponent(ClsComponent SourceComp, ClsComponent DestComp)
{
//do something here
}
函数执行后,我想用目标组件替换源组件。
【问题讨论】:
-
你的意思是说你想直接改变收藏?
-
是的@MohitShrivastava 我想像删除一样直接更改它。只需要调用 Collection.Remove(Obj) 之类的东西
-
您在那里所做的是将现有项目替换为新项目,而不是在同一索引处。您是说要对现有项目进行更改而不是替换吗?
-
顺便说一句,你误用了
FirstOrDefault。 -
@jmcilhinney 是的,这两个陈述都是正确的。我想更改现有组件但要进行替换,因为我以 ClsComponent 对象的形式获得更新的组件
标签: c# wpf observablecollection