Cześć,
Nie rozumiem tego i nic na ten temat nie mogę znaleźć w google.
Mam dwie skonwertowane listy z typu ObservableCollection jedną modyfikuje a druga ma służyć do sprawdzania w kolejnej funkcji co się zmieniło i nie rozumiem powodu że jak zmieniam jedną listę to w drugiej tez zmiana jest widoczna. Jak temu zapobiec.?
string kat = "";
BaseControlModel el = null;
List<CategoryControlsModel> oldListCat = new List<CategoryControlsModel>(SelectedCategoryControlsViewModel.Category);
List<CategoryControlsModel> l = SelectedCategoryControlsViewModel.Category.ToList();
if (catcontrol.Equals(""))
{
kat = cats;
}
else
{
kat = catcontrol;
}
CategoryControlsModel ob = SelectedCategoryControlsViewModel.Category.ToList().Where(p => p.Id == kat).FirstOrDefault();
if (catcontrol != "")
{
el = ob.Category.ToList().Where(p => p.Id == cats).FirstOrDefault();
}
var dialogService = ServiceLocator.Current.GetInstance<IDialogService>();
CategoryControlsViewModel cat = new CategoryControlsViewModel();
dialogService.ShowChangeNameAddTooltip(new ChangeNameAddTooltipViewModel(cat));
if (el == null)
{
l.ToList().Where(p => p.Id == kat).FirstOrDefault((a) =>
{
a.Id = cat.Id;
a.toolTip = cat.toolTip;
return true;
});
}
else
{
l.ToList().Where(p => p.Id == kat).First().Category.Where(p => p.Id == cats).FirstOrDefault((a) =>
{
a.Id = cat.Id;
a.toolTip = cat.toolTip;
return true;
});
}
SelectedCategoryControlsViewModel.Category = new ObservableCollection<CategoryControlsModel>(l);
this.packageService.SaveCategoryPackage(l.ToList(), oldListCat, kat, (exx) =>
{
if (exx != null)
{
this.dialogService.ShowError(exx);
return;
}
//UclMessenger.Send<UclProject>(Project, MessageTokens.ProjectLoaded);
});