序列化 View 或 ViewModel
Serializing View or ViewModel
我最近开始使用 UWP 进行开发。我们正在开发严重依赖图形的软件,同事建议我们应该在单个 XML 中序列化每个视图,我认为这不是一个好主意,因为 属性 值、静态类型处理和我'我不确定我们是否可以正确处理异步进程的序列化过程,并且我们有多个在其他视图中重用的用户控件。我想在我们的 ViewModel 中序列化数据,也许在我们的模型中。我想问:
View 序列化相对于 ViewModel 序列化有什么优势?
如果 ViewModel 序列化不利,为什么?
编辑:我们正在使用依赖对象,我不确定我们是否可以序列化它们。
我体验到的ViewModel序列化的优点:
- 因为您编写了 ViewModel,所以您可以完全控制序列化
- 因为 ViewModel 不依赖于视图(当正确应用 MVVM 时)可以使用单元测试来测试(反)序列化
是的,从 View 触发时,让序列化以正确的顺序执行可能会很棘手,但只需将其冒泡到 ViewModel 层次结构的顶部并一次性序列化整个 ViewModel。
如果 View 的(依赖)属性需要序列化,首先尝试将这些属性绑定到 ViewModel。如果你成功了,所有需要做的就是序列化 ViewModel。
如果 View 的某些属性无法绑定到 ViewModel,请向视图添加一个接口,该接口可以从 View 的 ViewModel 调用,该接口提供了一种将这些属性从视图读取和写入 ViewModel 的方法,并且再次回来。在(反)序列化 ViewModel 时调用这些方法。
我最近开始使用 UWP 进行开发。我们正在开发严重依赖图形的软件,同事建议我们应该在单个 XML 中序列化每个视图,我认为这不是一个好主意,因为 属性 值、静态类型处理和我'我不确定我们是否可以正确处理异步进程的序列化过程,并且我们有多个在其他视图中重用的用户控件。我想在我们的 ViewModel 中序列化数据,也许在我们的模型中。我想问:
View 序列化相对于 ViewModel 序列化有什么优势?
如果 ViewModel 序列化不利,为什么?
编辑:我们正在使用依赖对象,我不确定我们是否可以序列化它们。
我体验到的ViewModel序列化的优点:
- 因为您编写了 ViewModel,所以您可以完全控制序列化
- 因为 ViewModel 不依赖于视图(当正确应用 MVVM 时)可以使用单元测试来测试(反)序列化
是的,从 View 触发时,让序列化以正确的顺序执行可能会很棘手,但只需将其冒泡到 ViewModel 层次结构的顶部并一次性序列化整个 ViewModel。
如果 View 的(依赖)属性需要序列化,首先尝试将这些属性绑定到 ViewModel。如果你成功了,所有需要做的就是序列化 ViewModel。
如果 View 的某些属性无法绑定到 ViewModel,请向视图添加一个接口,该接口可以从 View 的 ViewModel 调用,该接口提供了一种将这些属性从视图读取和写入 ViewModel 的方法,并且再次回来。在(反)序列化 ViewModel 时调用这些方法。