C#序列化和数据绑定事件丢失

时间:2020-03-06 14:36:49  来源:igfitidea点击:

我已经在这里发布了类似的内容,但是我想在这里提出更普遍的问题。

我们是否尝试过序列化实现INotifyPropertyChanged的对象,并使其从序列中取回并将其绑定到DataGridView?当我这样做时,我无法从更改的值中刷新(我需要最小化窗口并将其重新打开)。

你有什么把戏吗?

解决方案

拥有自己的Event并在序列化后绑定它的技巧有效,但并不优雅,因为需要另一个我不想拥有的事件...

当我们处理具有内部状态的对象时,序列化接口会很棘手。我们可以张贴我们正在谈论的序列化代码的示例吗?

使用DataContractSerializer并为OnDeserialized创建一个方法

[OnDeserialized]
private void OnDeserialized(StreamingContext c) {}

反序列化完成后,这将使我们引发PropertyChanged事件