2011-07-07 75 views
2
  1. 我有一个列表集合,它包含许多属性名称。如何检索一些属性的值?

  2. MyViewModel是一个类,它包含所有可能的属性以显示在视图上。

  3. 现在我想通过一个MyViewModel的集合,只获取以前在步骤1)中定义的所有属性的值。

我想我必须使用反射。

我能得到的属性名是这样的:

public static string GetPropertyName<T>(Expression<Func<T>> expression) 
{ 
    var body = (MemberExpression) expression.Body; 
    return body.Member.Name; 
} 

不过我现在该如何利用这进一步去通过收集和获取值只有我已经在步骤1中定义的属性?

非常感谢。

回答

1

如果你有你需要做的属性名称(约 - 我无法测试出来ATM)

thing.GetType().Properties(propname).GetValue(thing,null); 

应返回你的“东西”对象的“PROPNAME”属性的值。

+1

正确的代码是。 rowViewModel.GetType()。GetProperty(“FieldName”)。GetValue(rowViewModel,null);非常感谢你指点我正确的方向。 – Houman

+0

我的荣幸。感谢您发布更正的代码,供将来的搜索者使用。 –