c# - Copy ObservableCollection to another ObservableCollection -


how copy observablecollection item observablecollection without reference of first collection? here observablecollection item value changes affecting both collections.

code

private observablecollection<ratemodel> _allmetalrate = new observablecollection<ratemodel>(); private observablecollection<ratemodel> _metalrateondate = new observablecollection<ratemodel>();  public observablecollection<ratemodel> allmetalrate {     { return this._allmetalrate; }     set     {         this._allmetalrate = value;         notifypropertychanged("metalrate");     } }  public observablecollection<ratemodel> metalrateondate {     { return this._metalrateondate; }     set     {         this._metalrateondate = value;         notifypropertychanged("metalrateondate");     } }  foreach (var item in metalrateondate)     allmetalrate.add(item); 

what causing , how can solve it?

you need clone object referenced item before it's added allmetalrate, otherwise both observablecollections have reference same object. implement icloneable interface on ratemodel return new object, , call clone before call add:

public class ratemodel : icloneable {      ...      public object clone()     {         // create new ratemodel object here, copying across fields         // instance. must deep-copy (i.e. clone) arrays or other complex         // objects ratemodel contains     }  } 

clone before adding allmetalrate:

foreach (var item in metalrateondate) {     var clone = (ratemodel)item.clone();     allmetalrate.add(clone); } 

Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

All overlapping substrings matching a java regex -