我在窗口中有一个表单,打开该表单以添加实体的新实例。要稍后编辑此实体,除了预先填充的字段外,呈现相同表单的最佳方式是什么?
没有脏的黑客(沿着设置状态[添加/编辑]的行)和违反单一责任原则,我发现很难重用相同的视图和视图模型。我目前正在考虑从包含所有重复VM代码的基本视图模型继承,但后来我仍然坚持使用相同形式的2个版本。在保持干爽的同时,最好的方法是什么?
我是WPF的新手,我正在使用MVVM Light框架。
答案 0 :(得分:1)
使用Automapper,它基本上可以在您的实体和视图模型之间进行无缝映射。检索有问题的实体,并将其映射到视图模型以显示在表单上。您可以创建新的视图模型并将其绑定到视图,也可以只在清除现有字段时重复使用相同的视图模型。
我建议在您的视图模型上显示一个状态,告诉您的UI是否处于“创建”或“编辑”模式。在我看来,这不违反单一责任;视图模型告诉UI它应该如何显示自己。实际的编辑和创建功能应包含在单独的Command对象中。