c#通用数据抽象

本文关键字:数据抽象 | 更新日期: 2023-09-27 18:18:09

所以本质上我正在制作一个WPF/MVVM Light应用程序,我目前有一个代表各种不同类型对象的TreeView。这些对象中的每一个都被封装在一个非常通用的"ViewModel"中,该"ViewModel"目前只是将它们的名称暴露给应用程序中的TreeView显示。

在概念上与此树相关联,我想在树下提供一个对象查看器,这样当用户在三个节点中选择一个项目时,对象查看器将使用该节点的Properties填充,并允许用户更改和保存有关节点的新值。

我正在有效地尝试创建一个抽象,可以采取各种类型(7种不同的对象类型),并公开其属性,并允许用户编辑它们。本质上,我可以将这个抽象的属性绑定到UI上的一组Text/Display框,当用户点击保存时,让它调用来自这个中间包装器类的实际底层数据对象的更新方法。

目前,我能想到的唯一方法是为每个底层对象类型制作一个单独的包装器(因为它们都有不同的属性),并且本质上硬编码字段和更新方法。

在提供进一步抽象和创建能够从各种对象暴露和更新属性的通用包装器类方面,是否有其他选项?谢谢。

c#通用数据抽象

不是将每个模型包装在不同的ViewModel中,您可能希望将模型直接暴露给视图并为每种类型的模型创建DataTemplate,这将允许您为每种模型类型拥有不同的ui,而不必在中间放置ViewModel。只是个建议。