所以基本上我正在制作一个WPF / MVVM Light应用程序,而且我目前有一个TreeView代表各种不同类型的对象。这些对象中的每一个都包含在一个非常通用的“ViewModel”中,该ViewModel当前只是将它们的名称公开给应用程序中的TreeView显示。
从概念上链接到这棵树,我想在树下面提供一个对象查看器,这样当用户选择三个中的项目时,对象查看器将填充该节点的属性,并允许用户更改并将新值保存到相关节点。
我正在尝试创建一个抽象,它可以采用各种类型(7种不同的对象类型)并公开它们的属性并允许用户编辑它们。本质上,我可以将此抽象的属性绑定到UI上的一组文本/显示框,当用户点击保存时,让它从这个中间包装类调用实际底层数据对象的更新方法。
目前,我能想到实现这一目标的唯一方法是为每个底层对象类型创建一个单独的包装器(因为它们都具有不同的属性),并且基本上对字段和更新方法进行硬编码。
在提供进一步抽象和创建能够从各种对象中公开和更新属性的通用包装类方面还有其他选择吗?感谢。
答案 0 :(得分:0)
您可能希望将模型直接暴露给View并为每种类型的模型创建DataTemplate
,而不是将每个模型包装在不同的ViewModel中,这样您就可以为每种模型类型设置不同的UI无需在中间放置中间ViewModel。只是一个建议。