Как объект в ObservableCollection перезаписывается при добавлении другого объекта в коллекцию - PullRequest
0 голосов
/ 23 мая 2019
ObservableCollection<TypeA> TempList = ObservableCollection<TypeA>();
List<TypeB> FullValues =  listB;    
Count = intA;
foreach (var ListA in AllList)
{
    for (var i = 1; i < Count; i++)
    {
        ListA.Name = FullValues[i].Name;
        ListA.Surname = FullValues[i].Surname;
        ListA.Amount = FullValues[i].Amount;
        ListA.Address = FullValues[i].Address;
        ListA.Source = FullValues[i].Source;
        ListA.OrderCreationDate = FullValues[i].Date;
        ListA.Type = FullValues[i].Date;
        ListA.Commerce = FullValues[i].Commerce;
        TempList.Add(ListA);
    }
}

Здравствуйте, я использую ObservableCollection определенного типа для заполнения локальной переменной того же типа, но использование метода Add добавляет новый объект и перезаписывает предыдущий. Мне нужно добавить значения к одному и тому же объекту, но не один раз. Поэтому я использую ObservableCollection для хранения значений больше времени Пробовал со списком и ObservableCollection

Ожидаемый результат: например, список содержит 3 значения с
ListA[0], ListA[1], ListA[2]

Фактический результат: ListA[2], [2], [2]

Спасибо за вашу помощь

Отредактировано: я пытался добавить еще один случай проблемы, это может выглядеть глупо, но мне нужно дублировать основной объект, чтобы добавить к ним другие значения и сохранить их в том же списке, и, как кто-то сказал, я все еще использую тот же объект, поэтому он не меняется:

List<string> RoadType = List<string>();
RoadType = somevalues;
foreach(var roads in listofroads)
{

roads.street = "xxxxx"
roads.country= "xxxxx"

//I want to duplicate roads twice

TestList.Add(roads);
TestList.Add(roads);


count = 0;
//Changing the properties of the object
foreach(var newroads in TestList)
{
roads.street = RoadType[i].street;
roads.country = RoadType[i].country;
count++
MainRoadList.Add(newroads);

}
MainRoadList.Add(roads);
}
...