我经常遇到需要将 linq2sql 对象从一个 WPF 窗口传递到另一个窗口的情况。
例如,我有一个带有 linq2SQL 对象列表的窗口。该列表是从“Window_Loaded”事件中公开声明的 DataContext 绑定的。双击这些项目之一,将打开第二个窗口,可以编辑该对象。在打开选定对象时,将传递给第二个窗口的属性。在用户进行了一些更改后,他决定放弃更改并关闭第二个窗口。
现在,由于输入字段直接绑定到 Linq2SQL 对象,因此更改的值仍然存在。
在这种情况下,最佳做法是什么?将新创建的对象从新创建的 DataContext 传递到第二个窗口会更好吗?然后,当需要更改时,我必须以某种方式刷新第一个窗口上的列表。
或者我可以使用第一个窗口的对象列表中已经绑定的对象并将其直接传递给第二个窗口吗?
我知道当我必须重新加载对象时我可以刷新对象
DB.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, MyObject);
最佳做法是什么?