我有一个对象列表,比如说List<Bar> barlist
。这些Bar
对象相当复杂,我很乐意在不深度复制它们的情况下继续进行。
但是,我想允许用户使用 a 和 a 来BindingSource
修改BindingNavigator
它们DataGridView
。但是,如果我将 设置DataSource
为我的 barlist 并修改值,则会BindingSource
修改我的列表(因为它显然不包含自己的列表,或者仅使用浅拷贝)。
这样做的问题是:如果用户想放弃他的更改怎么办?BindingSource
如果我提供深度复制的列表,我将不得不手动还原它们或不将它们应用于原始列表。但是,我想避免深度复制。
有替代路径吗?还是我别无选择,只能将对象标记为Serializable
并深度复制它们?