【发布时间】:2012-08-01 18:06:38
【问题描述】:
背景:
我有 2 个相同类型的对象实例。一个对象填充了我连接到的设备的配置,另一个对象填充了我存储在硬盘驱动器上的配置版本。
用户可以改变任何一个,所以我想比较它们并向用户展示差异。
每个对象都包含许多 ViewModel 属性,所有这些属性都扩展了ViewModelBase,这是我要比较的那些。
问题:
比我要提议的方法更好。
我正在考虑使用反射来检查我的对象中的每个属性,对于每个扩展 ViewModelBase,我将遍历每个属性。对于任何不同之处,我会将名称和值放入一个列表中,然后将其呈现给用户。
与其发明这个轮子,我想知道这是不是以前解决过的问题?有没有更好的方法来完成它?
【问题讨论】:
-
嗨,Marc,我看到您在评论中说“对于单个项目,还不错。列表很痛苦”。不幸的是,ViewModelBase 包含许多
ObservableCollection列表。这是否否定了您的建议的效用? -
好吧,那么您不再是在谈论“两个对象”,因此这与您所问的问题不同;p 但是:在相同的答案上,还有另一篇带有 codeplex 建议的帖子做一些更复杂的事情。
标签: c# wpf reflection