public class Test
{
public string Name { set; get; }
public Test CloneSource { set; get; }
public Test Clone()
{
return new Test() { Name = this.Name };
}
}
获取数据以后,首先复制
public ObservableCollection CopyList = new ObservableCollection();
public ObservableCollection OriginalSource;
public void Copy(ObservableCollection list)
{
OriginalSource = list;
CopyList.Clear();
foreach(Test item in OriginalSource)
{
CopyList.Add(item.Clone());
CopyList.Last().CloneSource = item;
}
//前台绑定ItemsSource为OriginalSource
}
在用户操作完成以后,退出时,根据情况进行保存,这里只帮你判断下,修改状态
//在用户操作完成退出时判断是否修改等
public bool IsChanged()
{
//无删除,只需要判断是否有修改即可
if (CopyList.Count == OriginalSource.Count)
{
bool isChanged = false;
for (int i = 0; i
{
if (OriginalSource[i].Name != CopyList[i].Name)
{
isChanged = true;
break;
}
}
return isChanged;
}
return true;
}